Активировать элемент навигации при выборе подменю (нет js) - PullRequest
0 голосов
/ 08 июля 2020

Я ищу способ выделить элемент навигации при выборе элемента подменю. Это должно быть сделано в 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";

?>

Как сделать «активным» пункт главного меню C, когда выбраны D или E?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 июля 2020

Быстрая версия, просто добавьте отметки для обоих пунктов подменю.

<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>
0 голосов
/ 08 июля 2020

Есть более эффективные способы сделать это с правильной структурой меню, но, используя систему, которая у вас уже есть, вы можете сделать что-то вроде этого:

 <?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>
...