【问题标题】:How to use PHP to display active class on sub nav links?如何使用 PHP 在子导航链接上显示活动类?
【发布时间】:2014-04-30 15:16:10
【问题描述】:

我有 PHP 代码可以在导航中的链接上显示活动类,但我无法找到为子导航正确应用活动类的解决方案 - 即位于根目录之外的文件夹中的页面目录。这是我的代码!

这是示例代码:(它适用于真实代码)

<?php
    $current_page = basename($_SERVER['PHP_SELF']);
?>

这是一个独立导航链接的示例:

<li class="<?php if ($current_page == "index.php"){ echo "active "; }?> item"><a href="index.php">Home</a></li>

这是下拉菜单的示例:

<li class="<?php if ($current_page == "index.php"){ echo "active "; }?> item has-dropdown"><a href="about.php">About Us</a>...

到目前为止,子导航的代码对我不起作用,但这里有真正的代码!

<?php 
    $cp = basename($_SERVER['PHP_SELF']);
    $cf = dirname($_SERVER['PHP_SELF']);
?>

这是一个独立导航链接的示例:

<li class="<?php if ($cp == "index.php"){ echo "active "; }?> item"><a href="/index.php">Home</a></li>

这是我导航中的实际下拉菜单。

<li class="<?php if ($cp == "courses.php" || $cp == "oshawa.php" && $cf == "courses" || $cp == "bowmanville.php" && $cf == "courses"){ echo "active "; }?> item has-dropdown">
    <a href="/courses.php">Courses</a> <!-- COURSES -->
    <ul class="dropdown">
        <li><a href="/courses.php">Courses</a></li>
        <li><label>Locations</label></li>
        <li><a href="/courses/oshawa.php">Oshawa</a></li>
        <li><a href="/courses/bowmanville.php">Bowmanville</a></li>
    </ul>
</li>

这就是代码中断的地方,第一部分工作正常,但第二部分我们添加 && $cf == "courses" 它会中断。

$cp == "oshawa.php" && $cf == "courses" 

我认为这不是格式问题,我认为这只是代码本身,不知道从哪里开始。我对 PHP 不是很好,感谢所有帮助,谢谢 =)

【问题讨论】:

  • 检查 (($cp == "courses.php" || $cp == "oshawa.php") && ($cf == "courses" || $cp == "bowmanville. php") && $cf == "课程")
  • 感谢您抽出宝贵时间正确提问。您已向代码提供了问题描述和故障排除尝试。 +1
  • @relentless 谢谢=)

标签: php


【解决方案1】:

试试这个,(假设您的所有课程页面都存在于courses 目录本身中。)

<?php 
    $cp = basename($_SERVER['PHP_SELF']);
    $cf = dirname($_SERVER['PHP_SELF']);
?>

<li class="<?php if ($cp == "courses.php" || $cf == "/courses"){ echo "active "; }?> item has-dropdown">
    <a href="/courses.php">Courses</a> <!-- COURSES -->
    <ul class="dropdown">
        <li><a href="/courses.php">Courses</a></li>
        <li><label>Locations</label></li>
        <li><a href="/courses/oshawa.php">Oshawa</a></li>
        <li><a href="/courses/bowmanville.php">Bowmanville</a></li>
    </ul>
</li>

【讨论】:

  • 确实有,我没想到,我现在就测试一下!
  • 这是我的测试页面 www.mrobertsdesign.ca/courses/oshawa.php - 代码不起作用,但我现在正在关注它,这很棒 =)
  • dirname() 返回目录名称以及/,因此在您的情况下,它将返回/courses,因此如果条件将其更改为$cf == "/courses"。我已经更新了我的答案。它现在应该可以工作了:)
  • 不着急!明天我整天都在这里,试图以任何方式解决这个问题=p
  • 哇哦谢谢提醒,我都没看到回复哈哈,我现在试试!
猜你喜欢
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 2014-06-13
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
相关资源
最近更新 更多