【问题标题】:Menu active item with PHP带有 PHP 的菜单活动项
【发布时间】:2021-01-27 11:15:53
【问题描述】:

我正在尝试为每个站点制作带有活动类的菜单。

而且我不知道我做错了什么。感谢帮助:D

<li class="nav-item <?php echo $home; ?>">
<a class="nav-link" href="/">Home</a>
</li> 
<li class="nav-item <?php echo $hry; ?>">
<a class="nav-link" href="/hry">Hry</a>
</li> 
<?php
  $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
  if($host == 'myurl.com/') {
    $home = 'active';
  }
  elseif ($host == 'myurl.com/hry')  {
    $hry = 'active';
  }
  else {
  $home = 'non-active';
  $hry = 'non-active';
  }
  ?>

【问题讨论】:

  • 这能回答你的问题吗? Add class="active" to active page using PHP
  • 目前尚不清楚您想要实现什么,但查看您的代码,我发现问题出在此处:您在 HTML 之后设置变量 $home $hry。您应该在输出 html 之前设置它们。
  • 是的 :D 这就是问题所在。谢谢

标签: php html menu


【解决方案1】:

你总是可以写一个辅助函数:

function checkIfActive($route){

    if(strpos($_SERVER['REQUEST_URI'], $route) !== false){
        return "is-active";
    }
    return null;
}

并将每个菜单项的辅助函数插入到您的 html 中。它将根据您输入的字符串检查其是否处于活动状态

<li class="nav-item <?php checkIfActive('string_for_home_url') ?>">
<a class="nav-link" href="/">Home</a>
</li> 
<li class="nav-item <?php checkIfActive('string_for_hry_url'); ?>">
<a class="nav-link" href="/hry">Hry</a>
</li> 

一旦您的应用程序和菜单项开始增长,这对您来说会容易得多

【讨论】:

    【解决方案2】:

    查看您的代码,我发现问题出在此处:您在 HTML 之后设置变量 $home $hry

    您应该在输出 html 之前设置它们。应该是这样的:

    <?php
      $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
      if($host == 'myurl.com/') {
        $home = 'active';
      }
      elseif ($host == 'myurl.com/hry')  {
        $hry = 'active';
      }
      else {
        $home = 'non-active';
        $hry = 'non-active';
      }
    ?>
    <li class="nav-item <?php echo $home; ?>">
    <a class="nav-link" href="/">Home</a>
    </li> 
    <li class="nav-item <?php echo $hry; ?>">
    <a class="nav-link" href="/hry">Hry</a>
    </li> 
    

    【讨论】:

      猜你喜欢
      • 2011-09-24
      • 2013-07-16
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      相关资源
      最近更新 更多