11. september 2004 - 17:05Der er
25 kommentarer og 1 løsning
Placering i træmenu
Hej JS hajer.
Jeg har lavet en "træmenu". Ved visningen benytter jeg PHP, og der er ingen problemer. Mit problem, ligger i hvor i træmenuen det enkelte link skal vises. Via databasen har jeg blot angivet de forskellige felter, og den viser dem i den rækkefølge som de nu skal.
Dog vil jeg gerne have en side, hvor jeg via f.eks. en <select> kan flytte de forskellige links op, ned eller ind og ud.
Et udtræk kan se ud som dette:
Forsiden ....foo ....bar ........bar foo ........foo bar ....hest
Den finder ud af hvordan de forskellige elementer skal sættes op ved hjælp af tre felter i min database. (id, home, reference).
Istedet for at forklare hvad de enkelte felter indeholder, laver jeg lige en skitse. Det giver nok et bedre indtryk.
Forsiden (id=1 - home = 1 - reference = 0 - build = 1) ....foo (id=2 - home = 1 - reference = 1 - build = 1) ....bar (id = 3 - home = 1 - reference = 1 - build = 2) ........bar foo (id = 4 - home = 1 - reference = 3 - build = 1) ........foo bar (id = 5 - home = 1 - reference = 3 - build = 2) ....hest (id = 6 - home = 1 - reference = 1 - build = 3) Underside (id = 7 - home = 7 - reference = 0 - build = 2) ....vis (id=8 - home = 7 - reference = 7 - build = 1) ........hest (id = 9 - home = 7 - reference = 8 - build = 1)
Dette burde vise logikken. Home definer hvilken kategori linket høre under. Reference fortæller hvilket link der skal komme efter det nuværende - som styres af id. Build angiver i hvilken rækkefølge de forskellige links i det enkelte niveau skal vises.
Jeg er ikke nogen ørn til javascript, og måske heller ikke til at forklare, så håber i er med på hvad jeg mener :)
Jeg kunne forestille mig at hver gang man flytter et link op, ned - ind eller ud - giver man den <option> linket ligger i, en ny værdi.
Værdien kunne være: home, reference, build eks.: <option value="7,8,1">
Hvis det bliver udvidet med en 'Venstre' og en 'Højre' knap, vil det virke præcis som menu-editoren i Visual Basic. Det er da noget elegantere end en select :) /mvh </bole>
Synes godt om
Slettet bruger
11. september 2004 - 17:55#2
Det er i hvert fald noget i den stil :)
Det eneste problem, er at den kun virker i IE - er det noget du kan klare, så det også kan køre i firefox ?
Problemet er, at der er et par alvorlige mangler i W3C's DOM, så man skal ud i en noget større løsning, hvis det skal fungere X-browser. Jeg kan godt prøve at kikke på det - men det bliver nok ikke i aften :) /mvh
Synes godt om
Slettet bruger
11. september 2004 - 18:55#6
Det ville i hvert fald være rart, da det SKAL fungere i andet end IE :)
Når folk fortæller dig, det er mere besværligt at kode strengt til standarderne (og dermed X-browser), er de fyldt med pis ... tro dem ikke ...!!! *LooOooL* ;D
Så må du prøve, om du kan rette den ind til dit formål :) /mvh
Synes godt om
Slettet bruger
11. september 2004 - 21:56#8
heh :)
Det hjalp en del på det. Når man vælger "save" får de jo præcis de værdier de skal have. Men jeg kan ikke gennemskue at tilføje en ekstra værdi. Så man ved hver f.eks. har (1.0) eller (1.2) - dette må være den bedste måde at gøre det på, da man der har et (x,y) kordinat.
Hvis du kan give et kort eksempel, ville det være helt kanont :)
Én måde kunne jo være, at have et ekstra skjult felt i hvert div - med værdien 0. Så kan du lave to knapper, der tæller denne værdi henholdsvis op og ned.
Samtidig kunne man jo lave en lille svedig detalje, hvor man giver alle div en fast bredde. Når så man klikker på 'Left' eller 'Right', tæller man som sagt værdien op, eller ned - og giver div'et en tilsvarende left-margin. På den måde får du lidt 'WYSIWYG' indrykning.
Synes godt om
Slettet bruger
11. september 2004 - 22:39#10
Det virker meget logisk :) Og er jo egentlig blot at lave en "dobbelt" kode, af det du allerede har lavet.
Så mit sidste spørgsmål er. Nu har jeg smidt det i en form, og sidst i funktionen mySave lavet en document.gogogo.submit();
Men ligegyldig hvilken rækkefølge jeg har sat værdierne i bliver mit output bare:
Det var der fejlen lå. Jeg havde nu givet dem et name. Havde blot lavet det som foo[]
Men at gøre så det er et array i stedet for forskellige navne, kan jeg bare gøre når jeg har fået det til at virke. For i den sidste ende skal det alligevel smides ud igennem php :)
Jeg leger lige lidt med det indryk. Men hvis du vil smide et svar, ville det jo være passende :)
Normalt er det nok at skrive brackets, men skal elementerne flyttes rundt og bevare deres oprindelige navn, må man indeksere navnene - og de kan jo stadig godt have form af et array :)
Synes godt om
Slettet bruger
11. september 2004 - 23:08#15
heh ja, så lærte jeg da også en del i dag :)
Det med indryk synes jeg nu alligevel ikke er sådan ligetil. For lad os nu sige at vi har to der ikke er indrykket, og jeg så indrykker nr.3 Så skal dens indrykningsværdi være lig med div nr.2's værdi i x aksen ?
Hvis du forstår problemet ?
Synes godt om
Slettet bruger
11. september 2004 - 23:12#16
Altså sådan at den man rykker ind under, får samme y værdi som x værdien lige ovenfor.
Jeg ved ikke rigtig, hvad der findes af 'kogebøger', men der er en fantastisk god JavaScript-reference, der hedder: "JavaScript, The Definitive Guide" fra O'Reilly. Det er som sagt ikke en kogebog, så den indeholder ikke ret mange eksempler - og så er den lidt pebret (omkring 500 kr), men er til gengæld en bibel på 7-800 sider :)
Synes godt om
Slettet bruger
12. september 2004 - 22:38#25
Well prisen betyder ingenting hvis man får noget for pengene :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.