Malcolm Beck´s: Array in Array und Submenu

Beitrag lesen

hi,

Nein, um ehrlich zu sein. Vielleicht beschreibst Du einfach nochmal in Worten, was genau Du erreichen möchtest und was davon nicht funktioniert.

Ok, ein letzter Versuch, vielleicht('hoffentlich') klappt es ja jetzt.

Wenn man jetzt auf die Seite start-navi.de/scratchen kommt, sieht man das ausgeklappte Menu, ist auch soweit richtig.

Jetzt habe ich das Problem, das bei klick auf eines der ausgeklappten Links das Ausklapp-Menu verschwindet, ich kenne zwar die Ursache, komme aber nicht auf die Lösung.
Mir fehlt eine Spezielle Bedingung, die dem Menu sagt, dass es aufgeklappt bleiben soll, ich komm aber nicht drauf, was das sein kann.

Hier mal der neue Code: (kommentiert)

<?php  error_reporting('E_ALL');  
  
$menu_child_navi_links =  array(  
array("text" => "Home", "ziel" => "/"),  
array("text" => "Equipment", "ziel" => "/equipment"),  
  
 array("text" => "Scratchen", "ziel" => "/scratchen", "sub" =>  
  array(  
   array("text" => "Scratchen", "ziel" => "/scratchen"),  
   array("text" =>  "Justage", "ziel" => "/equipment/einstellungen"),  
   array("text" =>  "Mixen", "ziel" => "/mixen"))  
)  
); reset ($menu_child_navi_links);  
  
function entlink($mein_link_array) {  
 $MeinMenu = "<ul>\n";  
  
 foreach($mein_link_array as $ebene_1) {  /* Array durchgehen */  
  
  if($_SERVER['REQUEST_URI'] == $ebene_1["ziel"])  
   $MeinMenu .= "<li><em>".$ebene_1["text"]."</em>"; /* Hier wird der Link der angezeigten Seite "entlinkt" */  
  else   $MeinMenu .= "<li><a href=\"".$ebene_1["ziel"]."\">".$ebene_1["text"]."</a>";   /* alle anderen werden "verlinkt" */  
  
  /* hier muss die bedingung rein, damit das Menu ausgeklappt bleibt, wenn es zu einer bestimmten Rubrik gehört */  
   if (($_SERVER['REQUEST_URI'] == $ebene_1["ziel"]) AND (isset($ebene_1["sub"]))) {  
    $MeinMenu .= entlink($ebene_1["sub"]);  
   }  
  
  $MeinMenu .= "</li>\n";  
 }  
    $MeinMenu .= "</ul>\n";  
  return $MeinMenu;  
}  
  
echo  entlink($menu_child_navi_links);  
?>

Die zweite if Anweisung ist das eigentlich Relevante, da muss die Bedingung rein, die dafür sorgt, dass das Menu aufgeklappt bleiben soll, ich komm aber nicht drauf, wie ich das anstellen kann.

Sorry wenn ich unmissverständlich bin, ich weiß nicht, wie ich es besser erklären soll.

mfg