Je suppose que vous essayez de créer un menu de navigation. Où les sous-entrées ne doivent apparaître que lorsque l'élément de menu supérieur est sélectionné par le visiteur de votre page.
C'est bien ça ?
D'accord si c'est le cas. Vous avez peut-être cela à l'esprit.
- si un utilisateur affiche votre page en premier. vous pouvez afficher uniquement les éléments de menu supérieurs.
- si ensuite un utilisateur sélectionne l'un des éléments du menu supérieur, il clique sur un lien qui recharge votre script avec des informations supplémentaires.
- Votre script doit maintenant déterminer quel élément de menu supérieur l'utilisateur a sélectionné en fonction des informations supplémentaires.
- Selon la sélection de l'utilisateur, vous pouvez afficher ou masquer des éléments de sous-menu.
Quel est votre travail ici, vous devez vous assurer que votre script détecte sur quel élément du menu supérieur est cliqué.
Avez-vous besoin de plus d'aide, ou savez-vous quoi faire ?
Ok, que diriez-vous de ceci comme exemple de base pour les menus php dynamiques comme 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>";
?>
Voir n'importe quel élément de menu supérieur remet la variable supplémentaire "menu". Il s'agit soit de "top1" soit de "top2" dans ce cas. Maintenant, votre script lors du rechargement vérifie si "menu" est déjà défini et, en fonction de la valeur de "menu", il affiche le sous-menu correspondant.
Il reste encore un long chemin à parcourir, car dans mon cas, j'utilise des éléments de menu fixes où, dans votre cas, vous chargez les éléments de menu en fonction de "l'ID utilisateur".
Faites-moi savoir si l'exemple ci-dessus fonctionne chez vous et si vous avez besoin d'une assistance supplémentaire pour l'adapter à vos menus chargés dynamiquement.
Suite à cette idée, vous devez remplacer
<li class='has-sub'><a href='#'><span><?=$get_main_menu['menu_name']; ?></span></a>
en ajoutant par exemple le nom de la variable "niveau0"
<li class='has-sub'><a href='<?= ?level0=$sub_menu['menu_name']; ?>'><span><? $get_main_menu['menu_name']; ?></span></a>
vous pouvez alors vérifier dans votre sous-menu si "level0" est défini comme vous l'attendez, puis afficher ou masquer les éléments du sous-menu.