Ich vermute, Sie versuchen, ein Navigationsmenü zu erstellen. Wobei die Untereinträge nur erscheinen sollen, wenn der oberste Menüpunkt vom Besucher Ihrer Seite ausgewählt wird.
Stimmt das?
Ok wenn ja. Vielleicht denken Sie daran.
- wenn ein Benutzer zuerst Ihre Seite anzeigt. Sie könnten nur die obersten Menüpunkte anzeigen.
- Wenn ein Benutzer einen der oberen Menüpunkte auswählt, klickt er/sie auf einen Link, der Ihr Skript mit einigen zusätzlichen Informationen neu lädt.
- Jetzt muss Ihr Skript anhand der zusätzlichen Informationen herausfinden, welchen oberen Menüpunkt der Benutzer ausgewählt hat.
- Je nach Auswahl des Benutzers können Sie Untermenüpunkte ein- oder ausblenden.
Was Ihre Aufgabe hier ist, ist sicherzustellen, dass Ihr Skript erkennt, auf welches Top-Menüelement geklickt wird.
Benötigen Sie weitere Hilfe oder ist klar, was zu tun ist?
Ok, wie wäre es damit als einfaches Beispiel für dynamische PHP-Menüs als test.php
<?php
$menu="";
extract( $_GET, EXTR_PREFIX_ALL, "url" );
if (isset($url_menu)){
$menu=$url_menu;
echo "you selected ".$menu."<br>";
}
echo "<ul>";
// top menu 1
echo '<li><a href="./test.php?menu=top1">Top1</a>';
if ($menu=="top1"){
echo "<ul>";
echo "<li>Submenu</li>";
echo "</ul>";
}
echo "</li>";
// top menu 2
echo '<li><a href="./test.php?menu=top2">Top2</a>';
if ($menu=="top2"){
echo "<ul>";
echo "<li>Submenu</li>";
echo "</ul>";
}
echo "</li>";
echo "</ul>";
?>
Jeder obere Menüpunkt übergibt die zusätzliche Variable „Menü“. Dies ist in diesem Fall entweder „top1“ oder „top2“. Nun prüft Ihr Skript beim Neuladen, ob "menu" bereits gesetzt ist und zeigt je nach Wert von "menu" das entsprechende Untermenü an.
Bis dahin ist es noch ein langer Weg, denn in meinem Fall verwende ich feste Menüpunkte, wo du in deinem Fall die Menüpunkte abhängig von der „userid“ lädst.
Lassen Sie mich wissen, ob das obige Beispiel bei Ihnen funktioniert und ob Sie zusätzliche Unterstützung benötigen, um es an Ihre dynamisch geladenen Menüs anzupassen.
Nach dieser Idee müssen Sie
ersetzen<li class='has-sub'><a href='#'><span><?=$get_main_menu['menu_name']; ?></span></a>
B. durch Hinzufügen des Variablennamens "level0"
<li class='has-sub'><a href='<?= ?level0=$sub_menu['menu_name']; ?>'><span><? $get_main_menu['menu_name']; ?></span></a>
dann können Sie in Ihrem Untermenü überprüfen, ob "level0" so eingestellt ist, wie Sie es erwarten, und dann die Untermenüpunkte ein- oder ausblenden.