Php 移动子页面/其他页面时,在引导中保持当前导航菜单处于活动状态

Php 移动子页面/其他页面时,在引导中保持当前导航菜单处于活动状态,php,css,twitter-bootstrap,Php,Css,Twitter Bootstrap,当访问子页面/其他页面时,我想使菜单导航在boostrap中保持活动状态 这是我在标题菜单上的代码: function echoActiveClassIfRequestMatches($requestUri) { $current_file_name = basename($_SERVER['REQUEST_URI'], ".php"); if ($current_file_name == $requestUri) echo 'c

当访问子页面/其他页面时,我想使菜单导航在boostrap中保持活动状态

这是我在标题菜单上的代码:

    function echoActiveClassIfRequestMatches($requestUri)
     {
       $current_file_name = basename($_SERVER['REQUEST_URI'], ".php");

       if ($current_file_name == $requestUri)
         echo 'class="active"';
    }
>家
只有当我们访问parrent页面时,此功能才起作用。如果想要访问子页面,导航菜单不保持活动状态。 例如:如果我们访问index.php,导航菜单处于活动状态,但如果我们从index.php访问子页面,导航菜单不处于活动状态。 当我们访问子页面时,如何激活导航菜单?
非常感谢您的回答。

简单的回答是您可以使用

$_SERVER['SCRIPT_NAME']
而不是

$_SERVER['REQUEST_URI']

较长的答案是,您可以从函数中处理多个事情,这将阻止您重用代码

请参考以下建议:

<?php
  /**
   * checks if the user called a certain script
   */
  function requestMatches($script_name)
  {
    return (basename($_SERVER['SCRIPT_NAME'], '.php') == $script_name);
  }

  /**
   * identifies the class for a given request 
   */
  function getClassForRequest($script_name)
  {
    return requestMatches($script_name) ? 'active' : '';
  }
?>

<ul class="nav navbar-nav navbar-left">
  <li class="<?=getClassForRequest('table')?>">
    <a href="table.php">Table <span class="sr-only">(current)</span></a>
  </li>
  <li class="<?=getClassForRequest("index")?>">
    <a href="index.php">home <span class="sr-only">(current)</span></a>
  </li>
</ul>


    简单的答案是你可以使用

    $_SERVER['SCRIPT_NAME']
    
    而不是

    $_SERVER['REQUEST_URI']
    

    较长的答案是,您可以从函数中处理多个事情,这将阻止您重用代码

    请参考以下建议:

    <?php
      /**
       * checks if the user called a certain script
       */
      function requestMatches($script_name)
      {
        return (basename($_SERVER['SCRIPT_NAME'], '.php') == $script_name);
      }
    
      /**
       * identifies the class for a given request 
       */
      function getClassForRequest($script_name)
      {
        return requestMatches($script_name) ? 'active' : '';
      }
    ?>
    
    <ul class="nav navbar-nav navbar-left">
      <li class="<?=getClassForRequest('table')?>">
        <a href="table.php">Table <span class="sr-only">(current)</span></a>
      </li>
      <li class="<?=getClassForRequest("index")?>">
        <a href="index.php">home <span class="sr-only">(current)</span></a>
      </li>
    </ul>
    
    
    

      最后,我正在使用这段代码来解决我的问题

      function echoActiveClassIfRequestMatches($requestUri)
           {
             $current_file_name = basename($_SERVER['REQUEST_URI'], ".php");
      
             if ($current_file_name == $requestUri)
               echo 'class="active"';
          }
      
      <!-- menu fuction -->
      <ul class="nav navbar-nav navbar-left">
      <li id="home" <?=echoActiveClassIfRequestMatches("index")?>><a href="index.php">HOME <span class="sr-only">(current)</span></a></li>
      </ul>
      
      <!-- add jquery in each sub page -->
      
      <script src="jquery.min.js"></script>
      <script type="text/javascript">
          $(document).ready(function () {
              $('#home').addClass('active');
               // other menu
              //$('#table').addClass('active');
          });
      </script>
      
      函数EchoActiveClassFrequestMatches($requestUri)
      {
      $current_file_name=basename($_SERVER['REQUEST_URI'],“.php”);
      if($current_file_name==$requestUri)
      echo“class=”active“;
      }
      

        最后,我正在使用这段代码来解决我的问题

        function echoActiveClassIfRequestMatches($requestUri)
             {
               $current_file_name = basename($_SERVER['REQUEST_URI'], ".php");
        
               if ($current_file_name == $requestUri)
                 echo 'class="active"';
            }
        
        <!-- menu fuction -->
        <ul class="nav navbar-nav navbar-left">
        <li id="home" <?=echoActiveClassIfRequestMatches("index")?>><a href="index.php">HOME <span class="sr-only">(current)</span></a></li>
        </ul>
        
        <!-- add jquery in each sub page -->
        
        <script src="jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $('#home').addClass('active');
                 // other menu
                //$('#table').addClass('active');
            });
        </script>
        
        函数EchoActiveClassFrequestMatches($requestUri)
        {
        $current_file_name=basename($_SERVER['REQUEST_URI'],“.php”);
        if($current_file_name==$requestUri)
        echo“class=”active“;
        }
        

          非常感谢你的回复。。我要试试这个。。谢谢,请告诉我您选择了什么方法,以便我可以更详细地解释。谢谢,我专注于使用Jquery。我的php文件结构是:app/table.php(作为主页)和app/table_edit.php(作为子页面)。所有文件都位于一个文件夹中。如果我使用上述解决方案,它只在主页面中设置活动类。在
          var path=window.location.pathname之后添加
          console.log(路径)
          以确保识别正确的uri。另外,执行
          console.log(项目)
          以确保识别正确的脚本名称。这应该与
          a href
          属性完全匹配。如果你需要更多的细节,请告诉我。。谢谢Bogdan先生。。。非常有用非常感谢你的回复。。我要试试这个。。谢谢,请告诉我您选择了什么方法,以便我可以更详细地解释。谢谢,我专注于使用Jquery。我的php文件结构是:app/table.php(作为主页)和app/table_edit.php(作为子页面)。所有文件都位于一个文件夹中。如果我使用上述解决方案,它只在主页面中设置活动类。在
          var path=window.location.pathname之后添加
          console.log(路径)
          以确保识别正确的uri。另外,执行
          console.log(项目)
          以确保识别正确的脚本名称。这应该与
          a href
          属性完全匹配。如果你需要更多的细节,请告诉我。。谢谢Bogdan先生。。。非常有用