【问题标题】:how to add active to a tag and li tag with php如何使用php将活动添加到标签和li标签
【发布时间】:2014-03-24 18:17:41
【问题描述】:

试图让我的 PHP 导航栏正常工作。如果页面是当前的,我正在尝试使用附加的活动类来回显用户所在的页面。

这是我的代码。它显示了链接,我可以浏览该站点,但它忽略了活动类。悬停作品和链接的样式。它只是忽略活动类。

<?php
$pages = array(
    "index.php" => "Home", 
    "pages/contact.php" => "Contact Us", 
    "pages/services.php" => "services", 
    "pages/employees.php" => "Employees", 
    "pages/dashboard.php" => "Dashboard");

foreach ($pages as $url => $label) {
  echo '<li ';

  if (isset($_GET['page']) && $_GET['page'] == $url) {
    echo '"class=active"';
  }
  echo '><a href=', "$url", '>', "$label", '</a></li>';
}
?>

【问题讨论】:

  • 您在查询字符串中发送什么(获取变量),您发送的是“页面”吗?
  • 我像这样在每个页面的顶部抓取页面
  • 我的意思是你发送一个 get 变量,比如:index.php?page=index.php
  • 使用echo $_GET['page'] 查看其中的内容。是否与例如pages/services.php 相同?可能$_GET['page']永远不等于$url,所以你需要在那里寻找问题。
  • 没有任何回应嗯..

标签: php arrays


【解决方案1】:

试试这个:

echo 'class="active"';

【讨论】:

    【解决方案2】:
    <?php
    $pages = array(
        "index.php" => "Home", 
        "pages/contact.php" => "Contact Us", 
        "pages/services.php" => "services", 
        "pages/employees.php" => "Employees", 
        "pages/dashboard.php" => "Dashboard");
    
    $cururl = $_SERVER['PHP_SELF'];
    
    foreach ($pages as $url => $label) {
      echo '<li';
    
      if (strpos($cururl,$url)!==false) {
        echo ' class="active"';
      }
      echo '><a href=', "$url", '>', "$label", '</a></li>';
    }
    ?>
    

    这应该适合你。因为,您尝试使用 GET-METHOD 访问 url 地址。在这里,我通过$cururl = $_SERVER['PHP_SELF']; 获取了您的网址,并检查了活动菜单项为if (strpos($cururl,$url)!==false)

    【讨论】:

    • 使用 $Get 方法是什么意思?在每一页上?我像这样存储页面
    • 要使此菜单正常工作,您的网址应如下所示:example.com/index.php?page=index.php | example.com/index.php?page=pages/services.php | example.com/index.php?page=pages/contact.php(如果你还没有使用htaccess重写)
    • 您是如何尝试访问您的页面的?上面的代码现在是干净的,如果你仍然没有得到那个工作,可能是你错误地以正确的方式访问 url
    • 访问网址是什么意思?你看的 bav 就是我发布的。在每个文件中,我使用 include 函数并在页面顶部添加 page 变量,正如我向您展示的那样。我也在为每个头部标签添加基础。
    • 能否给我一个链接,您可以从该链接导航到“联系”页面?请提供您的示例链接。
    【解决方案3】:
    <?php 
    
    if ($_SERVER['REQUEST_URI'] === "/page") echo 'id="active"'; 
    
    ?>
    

    【讨论】:

      【解决方案4】:

      未测试:

      <?php
      $pages = array(
          "index.php" => "Home", 
          "contact.php" => "Contact Us", 
          "services.php" => "services", 
          "employees.php" => "Employees", 
          "dashboard.php" => "Dashboard");
      
      $uri = explode("/", stripslashes($_SERVER['REQUEST_URI']));
      
      foreach ($pages as $url => $label) {
        echo '<li ';
        echo in_array($url, $uri)?'class="active"':'';
        echo '><a href="'.$url.'">'.$label.'</a></li>';
      }
      ?>
      

      注意:最好将您的其他页面文件放在根目录下您的 index.php 旁边

      【讨论】:

        【解决方案5】:

        这样做:

        $pages = array(
            "index.php" => "Home", 
            "pages/contact.php" => "Contact Us", 
            "pages/services.php" => "services", 
            "pages/employees.php" => "Employees", 
            "pages/dashboard.php" => "Dashboard");
        
        foreach ($pages as $url => $label) {
          echo '<li ';
        
          if(basename($_SERVER['REQUEST_URI'])== basename($url)){   // this line
                echo "class='active'";                              // this line
           }                                                        // and this line
          echo '><a href=', "$url", '>', "$label", '</a></li>';
        }
        ?>
        

        【讨论】:

        • 那里有get变量吗?
        • 不需要加Get进去吗?如何将其写入此
        • 你现在的网址到底是什么,复制粘贴到这里
        • 嗯。这样做的方式是否仅将活性添加到 li?因为我需要在 li 和 上处于活动状态,这可能是问题吗?
        • 不,它仍然不起作用。是不是因为我需要以某种方式在每个页面上的 $page = page.php 中添加 $Get ?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-21
        • 2021-04-28
        相关资源
        最近更新 更多