选择子菜单时的活动导航项(无 js)

Acitve navigation item when selected submenu (no js)

我正在寻找一种在选择子菜单项时突出显示导航项的方法。必须在 PHP 内完成。菜单位于动态加载为包含在每个页面上。 另外,我不是程序员,所以请像初学者一样解释一下。

我在 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 时使 'active' 成为主菜单项 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>