Acho que você tenta criar um menu de navegação. Onde as subentradas só devem aparecer quando o item do menu superior for selecionado pelo visitante da sua página.
Isso está certo?
Ok se sim. Você pode ter isso em mente.
- se um usuário exibir sua página primeiro. você pode mostrar apenas os principais itens do menu.
- se um usuário selecionar um dos itens do menu superior, ele clicará em um link e recarregará seu script com algumas informações adicionais.
- Agora seu script precisa descobrir qual item de menu superior o usuário selecionou com base nas informações adicionais.
- Dependendo da seleção do usuário, você pode mostrar ou ocultar itens do submenu.
Qual é o seu trabalho aqui, você precisa ter certeza de que seu script detecta em qual item do menu superior é clicado.
Você precisa de mais ajuda ou está claro o que fazer?
Ok, que tal isso como um exemplo básico para menus php dinâmicos como 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>";
?>
Veja qualquer item do menu superior entrega a variável adicional "menu". Este é "top1" ou "top2" neste caso. Agora seu script ao recarregar verifica se "menu" já está definido e dependendo do valor de "menu" ele mostra o submenu correspondente.
Ainda há um longo caminho a percorrer, pois no meu caso eu uso itens de menu fixos onde no seu caso você carrega os itens de menu dependendo do "userid".
Deixe-me saber se o exemplo acima funciona no seu lugar e se você precisa de suporte adicional para adotá-lo em seus menus carregados dinamicamente.
Seguindo essa ideia você precisa substituir
<li class='has-sub'><a href='#'><span><?=$get_main_menu['menu_name']; ?></span></a>
adicionando, por exemplo, o nome da variável "level0"
<li class='has-sub'><a href='<?= ?level0=$sub_menu['menu_name']; ?>'><span><? $get_main_menu['menu_name']; ?></span></a>
então você pode verificar no seu submenu se "level0" estiver definido como você espera e, em seguida, mostrar ou ocultar os itens do submenu.