Avatar billede fommy Nybegynder
27. februar 2007 - 15:27 Der er 5 kommentarer og
1 løsning

Dynamisk menu med underpunkter

Nu har jeg siddet det meste af dagen og prøvet mig frem med at lave en dynamisk menu udfra et array.
Det virker som sådan også nu, men jeg vil gerne have en vertikal menu, hvor underpunkterne så kommer nedenunder, og det volder mig lidt problemer.

Min kode ser således ud:

for(reset($menu_items); $sub_menu=key($menu_items); next($menu_items)) {
        echo ("<font size=\"2\"><b>");
        echo ("<a href=\"".$menu_items[$sub_menu][$sub_menu]."?submenu=".$sub_menu."\">");
        echo (key($menu_items[$sub_menu])."</a></font> ");
        if ($submenu==$sub_menu){
                $opt = array_shift ($menu_items[$sub_menu]);
                echo $opt;
                for(reset($menu_items[$sub_menu]); $menu_item=key($menu_items[$sub_menu]); next($menu_items[$sub_menu])) {
                          echo ("<font size=\"1\"><b>");
                            echo ("&nbsp;&nbsp;<a href=\"".$menu_items[$sub_menu][$menu_item]."?submenu=".$sub_menu."\">");
                        echo (key($menu_items[$sub_menu])."</a> ");
                        echo ("</font>");
                }
                echo ("</b></font>");
        }
        echo ("");
}


Og den genererer en linie med alle punkter:
Menu1 Menu2 UnderMenu1 Undermenu2 Menu3 Menu4

Jeg vil gerne at undermenuerne kommer til at stå på en ny linie:
Menu1 Menu2 Menu3 Menu4
UnderMenu1 Undermenu2

Hvordan gør jeg lige det..?
Avatar billede radion Nybegynder
27. februar 2007 - 16:04 #1
Dette, er én måde at gøre det på

for(reset($menu_items); $sub_menu=key($menu_items); next($menu_items)) {
        $topmenu.="<font size=\"2\"><b>";
        $topmenu.="<a href=\"".$menu_items[$sub_menu][$sub_menu]."?submenu=".$sub_menu."\">";
        $topmenu.=key($menu_items[$sub_menu])."</a></font> ";
        if ($submenu==$sub_menu){
                $opt = array_shift ($menu_items[$sub_menu]);
                echo $opt;
                for(reset($menu_items[$sub_menu]); $menu_item=key($menu_items[$sub_menu]); next($menu_items[$sub_menu])) {
                          $submenu.="<font size=\"1\"><b>";
                            $submenu.="&nbsp;&nbsp;<a href=\"".$menu_items[$sub_menu][$menu_item]."?submenu=".$sub_menu."\">";
                        $submenu.=key($menu_items[$sub_menu])."</a> ";
                        $submenu.="</font>";
                }
                $topmenu.="</b></font>";
        }
       
}

echo $topmenu ."<br />".$submenu;
Avatar billede radion Nybegynder
27. februar 2007 - 16:06 #2
Det der sker, er i stedet for at udskrive din menu med det samme, gemmes de i hhv variablen $topmenu og $submenu, der så kan udskrives hvor man lyster

hvorfor udskrive $opt?
Avatar billede fommy Nybegynder
27. februar 2007 - 16:26 #3
Godt spørgsmål.. Det er der egentlig ikke nogen grund til.
Til gengæld opfører den sig som jeg gerne vil nu.
Men kan det lade sig gøre at sætte et tredie led på?
Altså:

Menu1
  UnderMenu1
    UnderUnderMenu1

Eller skal jeg lave det om før det kan det?
Avatar billede radion Nybegynder
27. februar 2007 - 17:14 #4
i princippet kan du jo bare sætte en for lykke inde i din submenu - for-lykke..

noget i retningen af denne struktur?
for (){
  for(){
      for(){

      }
  }
}
Avatar billede fommy Nybegynder
27. februar 2007 - 17:34 #5
Skidegodt :)
Hvis du lægger et svar, skal du få din belønning
Avatar billede radion Nybegynder
27. februar 2007 - 17:35 #6
hepper
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester