Ik neem aan dat je een navigatiemenu probeert te maken. Waar de subitems alleen zouden moeten verschijnen wanneer het bovenste menu-item is geselecteerd door de bezoeker van uw pagina.
Klopt dat?
Oké als dat zo is. Misschien heb je dat in gedachten.
- als een gebruiker uw pagina als eerste weergeeft. u kunt alleen de bovenste menu-items weergeven.
- als een gebruiker vervolgens een van de bovenste menu-items selecteert, klikt hij/zij op een link en wordt uw script opnieuw geladen met wat aanvullende informatie.
- Je script moet nu uitzoeken welk item in het bovenste menu de gebruiker heeft geselecteerd op basis van de aanvullende informatie.
- Afhankelijk van de selectie van de gebruiker kunt u submenu-items tonen of verbergen.
Wat je taak hier is, je moet ervoor zorgen dat je script detecteert op welk item in het hoofdmenu wordt geklikt.
Heeft u meer hulp nodig of is het duidelijk wat u moet doen?
Oké, wat dacht je van dit als een basisvoorbeeld voor dynamische php-menu'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>";
?>
Zie elk topmenu-item overhandigt de extra variabele "menu". Dit is in dit geval "top1" of "top2". Nu controleert je script bij herladen of "menu" al is ingesteld en afhankelijk van de waarde van "menu" toont het het bijbehorende submenu.
Er is nog een lange weg te gaan, want in mijn geval gebruik ik vaste menu-items waarbij je in jouw geval de menu-items laadt afhankelijk van de "userid".
Laat me weten of het bovenstaande voorbeeld bij jou werkt en of je extra ondersteuning nodig hebt om het toe te passen in je dynamisch geladen menu's.
Als je dat idee volgt, moet je
. vervangen<li class='has-sub'><a href='#'><span><?=$get_main_menu['menu_name']; ?></span></a>
door bijvoorbeeld de variabelenaam "level0" toe te voegen
<li class='has-sub'><a href='<?= ?level0=$sub_menu['menu_name']; ?>'><span><? $get_main_menu['menu_name']; ?></span></a>
dan kun je in je submenu controleren of "level0" is ingesteld zoals je het verwacht en vervolgens de submenu-items tonen of verbergen.