Navigationsmenü: Klick öffnet nichts

  • Navigationsmenü: Klick öffnet nichts

    Ich versuche verzweifelt ein dynamisches Menü zu bauen. Ansich ja keine problem aber ich komme jetzt einfach nicht mehr weiter. Mit dem Code unten erscheinen alle Hauptmenüs. Aber die Untermenüs werden mit einem Klick auf das entsprechende Hauptmenu nicht angezeigt. Woran kann das denn liegen? Die Formate müssten doch alle richtig sein.


    Quellcode

    1. <?PHP
    2. $menuStruct = array(
    3. 'Startseite' => array('root'=>'?page=start'),
    4. 'Biographie' => array('root'=>'?page=biographie'),
    5. 'Diskographie' => array('root'=>'?page=diskographie','Singles'=>'?page=s_diskographie','Alben'=>'?page=a_diskographie'),
    6. 'Fotos' => array('root'=>'?page=fotos','..:: La Bouche ::..'=>'?page=fotos&gal=0'),
    7. 'Backstage' => array('root'=>'?page=backstage'),
    8. 'Links' => array('root'=>'?page=links'),
    9. 'Auszeichnung' => array('root'=>'?page=awards'),
    10. 'G&auml;stebuch' => array('root'=>'?page=g_buch'),
    11. 'Forum' => array('root'=>'?page=forum'),
    12. 'Kontakt' => array('root'=>'?page=kontakt')
    13. );
    14. if($_SERVER['PHP_SELF'] == $menuStruct[0]['root']){
    15. foreach($menuStruct as $key=>$value){
    16. if($_SERVER['PHP_SELF'] == $value['root']){
    17. echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">".$key."</a></div>\n";
    18. }
    19. else{
    20. echo "<div class=\"fstLevel\"><a href=".$value['root'].">".$key."</a></div>\n";
    21. }
    22. }
    23. } else {
    24. foreach($menuStruct as $key=>$value){
    25. if($_SERVER['PHP_SELF'] == $value['root']){
    26. echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">".$key."</a></div>\n";
    27. }else{
    28. echo "<div class=\"fstLevel\"><a href=".$value['root'].">".$key."</a></div>\n";
    29. }
    30. foreach($value as $key2=>$value2){
    31. if(array_search($_SERVER['PHP_SELF'],$value)){
    32. if($key2 != "root")
    33. if($_SERVER['PHP_SELF'] == $value2){
    34. echo "<div class=\"secLevelActive\"><a href=".$value2.">".$key2."</a></div>\n";
    35. }else{
    36. echo "<div class=\"secLevel\"><a href=".$value2.">".$key2."</a></div>\n";
    37. }
    38. }
    39. }
    40. }
    41. }
    42. ?>
    Alles anzeigen
  • Hast du schon mal versucht vor der zwiten Schleife den Inhalt von $value mit print_r oder var_dump zu überprüfen, ob wirklich entsprechender Inhalt vorhanden ist?

    Btw. du musst ja bei der zweiten Schleife überprüfen, dass er nicht noch einmal das root-Array anzeigt. Einfacher und ein ganz klein bisschen schneller geht es mit denke ich mit unset($value['root']) vor der Schleife, womit du den Teil des Arrays löscht und somit auch hier kein extre Schleifendurchgang gestartet wird.