0

我在所有页面的顶部都有一个相同的水平菜单,我使用 PHP include() 语句添加了该菜单。在我的样式表中,我希望有一个类,如果用户在特定页面上,则与该页面对应的菜单项将具有不同的颜色。所以,或多或少:

#menu { 背景颜色:蓝色;}

#menu .active { 背景颜色:绿色;}

但是,由于菜单来自 PHP 包含,它总是相同的。如何编写一些 PHP 或 JavaScript 将 class="active" 添加到每个页面的相应菜单项?

4

1 回答 1

3

当您include()创建一个文件时,包含的文件可以访问包含它的位置的所有范围内变量。您可以轻松地设置一个变量来说明哪个菜单项应该处于活动状态。一个基本的例子可能是这样的:

第一页.php

<?php

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

菜单.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 回答