ナビゲーションメニューを作成しようとしていると思います。サブエントリは、ページの訪問者がトップメニュー項目を選択した場合にのみ表示されます。
そうですか?
もしそうならOK。あなたはそれを心に留めているかもしれません。
- ユーザーが最初にページを表示した場合。トップメニュー項目のみを表示する場合があります。
- 次に、ユーザーがトップメニュー項目の1つを選択した場合、リンクをクリックすると、スクリプトに追加情報が再ロードされます。
- 次に、スクリプトは、追加情報に基づいて、ユーザーが選択したトップメニュー項目を特定する必要があります。
- ユーザーの選択に応じて、サブメニュー項目を表示または非表示にする場合があります。
ここでのあなたの仕事は、スクリプトがどのトップメニュー項目がクリックされたかを検出することを確認する必要があります。
さらにサポートが必要ですか、それとも何をすべきか明確ですか?
test.php のような動的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>";
?>
追加の変数「menu」を渡すトップメニュー項目を参照してください。この場合、これは「top1」または「top2」のいずれかです。これで、リロード時のスクリプトは「メニュー」がすでに設定されているかどうかをチェックし、「メニュー」の値に応じて、対応するサブメニューを表示します。
私の場合は固定メニュー項目を使用しており、あなたの場合は「ユーザーID」に応じてメニュー項目をロードするため、まだ長い道のりがあります。
上記の例があなたの場所で機能するかどうか、そして動的にロードされるメニューにそれを採用するために追加のサポートが必要かどうかを教えてください。
そのアイデアに従って、交換する必要があります
<li class='has-sub'><a href='#'><span><?=$get_main_menu['menu_name']; ?></span></a>
たとえば、変数名「level0」を追加します
<li class='has-sub'><a href='<?= ?level0=$sub_menu['menu_name']; ?>'><span><? $get_main_menu['menu_name']; ?></span></a>
次に、サブメニューをチェックインして、「level0」が期待どおりに設定されているかどうかを確認してから、サブメニュー項目を表示または非表示にします。