0

すべてのページの上部に同じ水平メニューがあり、PHPのinclude()ステートメントを使用して追加します。私のスタイルシートでは、ユーザーが特定のページを表示している場合、そのページに対応するメニュー項目の色が異なるクラスが必要です。だから、多かれ少なかれ:

#menu {background-color:blue; }

#menu .active {background-color:green; }

ただし、メニューはPHPインクルードから取得されるため、常に同じです。各ページの適切なメニュー項目にclass="active"を追加するPHPまたはJavaScriptを作成するにはどうすればよいですか?

4

1 に答える 1

3

ファイルをinclude()作成すると、インクルードされたファイルは、インクルードされた場所にあるすべてのスコープ内変数にアクセスできます。どのメニュー項目をアクティブにするかを指定する変数を簡単に設定できます。基本的な例は次のようになります。

firstpage.php

<?php

$chosenMenu = 'page1';
include('menu.php');

menu.php

<div id="menu">
<?php
$menuItems = array(
    'page1'=>'firstpage.php',
    'page2'=>'secondpage.php',
    'page3'=>'lolcats.php'
);
foreach($menuItems as $key => $value) {
    echo '<a href="'.$value.'"';
    if (isset($chosenMenu) && $chosenMenu == $key) echo ' class="active"';
    echo '>';
}
?>
</div>

このスタイルでは$chosenMenu、メニューファイルを含める前に変数を設定するだけで、そこから変数を制御できます。

于 2010-04-11T05:07:16.317 に答える