全体的な目標が何であるかに応じて、これを達成する方法がいくつかあります。
まず、Cookie を使用してページ間の状態を保存できます。これは非常に簡単に実装でき、サーバー側のコードは必要ありません。
第 2 に、データベースを使用することもできますが、既にデータベースを使用していない限り、それは少しやり過ぎです。
3 番目 - Javascript を使用して、現在のページの場所に基づいてメニューを配置する場所を決定します。これは私の推奨事項です。非常に迅速/簡単/軽量です。理論的には、ユーザーがページに移動した場合、ユーザーはメニューからそこにたどり着き、毎回メニューの正確な場所に移動します。
これは、そのままの Javascript を使用した簡単な例です。このコードは、現在の URL に基づいてアクティブなメニュー項目のクラスを設定する基本メニューを動的に生成します。ネストされたメニューで同様のことを簡単に実現できます。ご覧になり、ご不明な点がございましたらお知らせください。
(function () {
var html = "<div class=\"menu\">" +
"<div id=\"Page1MenuItem\"><a href=\"page1.html\">Page1</a></div>" +
"<div id=\"Page2MenuItem\"><a href=\"page2.html\">Page2</a></div>" +
"<div id=\"Page3MenuItem\"><a href=\"page3.html\">Page3</a></div>" +
"<div id=\"Page4MenuItem\"><a href=\"page4.html\">Page4</a></div>" +
"<div id=\"Page5MenuItem\"><a href=\"page5.html\">Page5</a></div>" +
"</div>";
document.getElementById("MenuContainer").innerHTML = html;
var currentUrl = window.location.pathname.toLowerCase();
switch (currentUrl) {
case "/page1.html":
document.getElementById("Page1MenuItem").setAttribute("class", "current");
break;
case "/page2.html":
document.getElementById("Page2MenuItem").setAttribute("class", "current");
break;
case "/page3.html":
document.getElementById("Page3MenuItem").setAttribute("class", "current");
break;
case "/page4.html":
document.getElementById("Page4MenuItem").setAttribute("class", "current");
break;
case "/page5.html":
document.getElementById("Page5MenuItem").setAttribute("class", "current");
break;
}
})();