On Tue, 16 Sep 2003 10:23:18 +0000 (UTC)
Torben Heikel Vinther <thv@sopper.dk> wrote:
> Jeg har lavet et databasestyret menusystem, hvor hvert menupunkt
> har et id, parent_id og et rækkefølgetal, så der kan laves en
> træstruktur sorteret efter rækkefølgetallet. Når jeg indsætter et
> nyt menupunkt sættes rækkefølgetallet automatisk til +1. Det
> virker fint, men når jeg vil ændre på rækkefølgen af menupunkter,
> så har jeg ikke fundet på en smart måde at programmere mig ud af
> det, så det foregår ved at ændre i menutabellen via phpmyadmin,
> og det er jo noget besværligt.
>
> Er der nogen der har en god idé til hvordan jeg kan lave en
> funktion eller lignende, som kan flytte et menupunkt op eller ned
> i rækken og samtidig opdatere de øvrige menupunkter i forhold til
> dette?
>
> Et eksempel (rækkefølgetal i parentes):
> Hest (1)
> Ko (2)
> Gris (3)
>
> - ændres til:
> Ko (1)
> Hest (2)
> Gris (3)
>
> Jeg håber det er forståeligt hvad jeg spørger efter, og at det er
> den rette NG jeg stiller det i (kunne jo være at jeg skal have
> fat i noget javascript eller hvad?).
>
> På forhånd tak
> Torben Heikel Vinther
javascript er clientsidet, så det kan hjælper ikke meget.
Det jeg vil anbefale er at du tænker relativt i stedet for
absolut.
i stedet for ovestående tabel så ville jeg gøre følgelde:
aktuelle foranstående næste
hest (start) (ko)
ko (hest) (gris)
gris (ko) (slut)
På den måde skal du kun ændre på den forrige og den
efterfølgende hvis sætte nye emner ind, uanset hvor stor
din tabel bliver. og de funtioner du lave for at sætte nye værdier ind
elle fjærne gamle bliver ens uanset hvor i tabelle du befinder.
og der vil kune være tale om to funtioner nemlig en put og en
remove. resten kan du klare ved at kombiner de to, på forsklellig
hvis.
Når du skal lave dine menupunket hiver du hele tabblen ud i
et array finder start og arbejder dig fremefter, evt ved hjælp
af en rekursiv funtion.
--
Poul-Erik Andreasen
http://www.linux-service.dk
http://www.pea.dk