我想找到一种在选择子菜单项时突出显示导航项的方法。它必须在PHP中完成。菜单所在的位置被动态加载为每个页面上的include。另外,我不是程序员,所以请像初学者一样解释。
我在include.php文件中有以下菜单:
<?php
function setActive($name){
global $pageName;
if ($pageName == $name){
echo "class='active' ";
}
}
?>
<ul id="menu">
<li ><a <?php setActive ('A')?> href="a.php">A</a></li>
<li ><a <?php setActive ('B')?> href="a.php">B</a></li>
<li>
<a href="#" >C</a>
<ul>
<li><a href="D.php">D</a></li>
<li><a href="E.php" >E</a></li>
</ul>
</li>
<li>
</ul>
每个页面都有以下内容:
<?php
$pageName ='D';
require "include.php";
?>
当选择D或E时,如何使主菜单项C处于"活动"状态?
谢谢。
有更好的方法可以做到这一点,使用适当的菜单结构,但使用您已经拥有的系统,您可以做这样的事情:
<?php
function setActive($name) {
global $pageName;
if ($pageName == $name){
echo "class='active' ";
}
}
function setMultiActive($array_of_names) {
global $pageName;
foreach ($array_of_names as $name) {
if ($pageName == $name) {
echo "class='active'";
break;
}
}
?>
<ul id="menu">
<li ><a <?php setActive ('A')?> href="a.php">A</a></li>
<li ><a <?php setActive ('B')?> href="a.php">B</a></li>
<li>
<a href="#" <?php setMultiActive(['D', 'E']) ?>>C</a>
<ul>
<li><a href="D.php">D</a></li>
<li><a href="E.php" >E</a></li>
</ul>
</li>
<li>
</ul>
快速版本,只需为两个子菜单项添加签入即可。
<li ><a <?php setActive ('A')?> href="a.php">A</a></li>
<li ><a <?php setActive ('B')?> href="a.php">B</a></li>
<li >
<a <?php setActive ('D')?> <?php setActive ('E')?> href="#">C</a>
<ul>
<li><a <?php setActive ('D')?> href="D.php">D</a></li>
<li><a<?php setActive ('E')?> href="E.php" >E</a></li>
</ul>