使用公共标题突出显示导航栏中的活动页面

时间:2014-11-20 21:53:50

标签: php navbar

我是网络编程的新手。我创建了一个带有通用标题的简单网站。我的标题位于名为inc / common_header.php的文件夹中,我在所有其他页面中都包含此标题。 到目前为止标题工作正常,但我想在当前页面的导航菜单中添加不同的颜色。我试过这个解决方案:

<?php 
if (strpos($_SERVER['PHP_SELF'], 'about.php')) echo 'class="current"';
?>

这个解决方案运行良好但我的问题是我在单独的页面中有导航栏,当我点击时,结果总是相同的inc / common_header.php而不是当前页面。

这是我的代码:

common_header.php

<nav class="navigation-bar fixed-top">
<nav class="navigation-bar-content">
    <a class="element brand" href="/"><span class="icon-grid-view"></span> COMPANY NAME</a>

    <span class="element-divider"></span>

    <a class="element brand" href="/"><span class="icon-home"></span> HOME</a>
    <div class="element">
        <a class="dropdown-toggle" href="#"><span class="icon-printer"></span> SERVICES</a>
        <ul class="dropdown-menu" data-role="dropdown">
            <li><a href="#">SERVICE 1</a></li>
            <li><a href="#">SERVICE 2</a></li>
            <li><a href="#">SERVICE 3</a></li>
            <li class="divider"></li>
            <li><a href="#">SERVICE 4</a></li>
            <li><a href="#">SERVICE 5</a></li>
            <li class="divider"></li>
            <li><a href="#">SERVICE 6</a></li>
            <li><a href="#">SERVICE 7</a></li>
        </ul>
    </div>

     <div class="element">
        <a class="dropdown-toggle" href="#"><span class="icon-printer"></span> CALCULATOR</a>
        <ul class="dropdown-menu" data-role="dropdown">
            <li><a href="calc_home.php">HOME</a></li>
        </ul>
    </div>

    <a class="element brand" href="about.php"><span class="icon-printer"></span> ABOUT</a>

    <div class="element place-right">
        <a class="dropdown-toggle" href="#"><span class="icon-cog"></span> SETTINGS</a>
        <ul class="dropdown-menu place-right" data-role="dropdown">
            <li><a href="#">MY ACCOUNT</a></li>
            <li><a href="#">MY PRODUCTS</a></li>
            <li class="divider"></li>
            <li><a href="#">LOG OUT</a></li>
        </ul>
    </div>
    <span class="element-divider place-right"></span>
    <button class="element image-button image-left place-right"> USERNAME <img src="img/me.jpg"/></button>
</nav>

提前感谢您的帮助。我会很感激的。

2 个答案:

答案 0 :(得分:1)

我会假设你的问题是:

您的网站上的公共部分(标题)位于文件&#39; common_header&#39;中。您包含该文件&#39; common_header&#39;在您网站的所有页面中(例如:家庭,关于,服务,产品,联系人)。但是在其中一个页面(例如:联系人)和该页面中,您希望以不同的样式显示标题。

如果这是您的问题,我的解决方案是:

在你的#common_header&#39;页面使用此PHP代码而不是您拥有的代码:

if(isset($specialPage) && $specialPage == "this is the special page"){
    echo 'class="current"';
};

然后,在您的联系人中&#39;页面(以我作为示例使用),您可以在包含标题页之前写下:

$specialPage = "this is the special page";
include("your header page");

同样,如果这不是您想要的,我会因误解您的问题而道歉。

答案 1 :(得分:0)

尝试将您的某个href更改为about.php并查看其是否有效。例如:

       <ul class="dropdown-menu" data-role="dropdown">
        <li><a href="about.php">About</a></li>
        //etc

现在您的超链接转到index.php,它会为PHP_SELF超级提供相同的值,因此永远不会同意about.php。至少我可以通过这个有限的代码示例看到。如果这不起作用,请修改您的问题以包含$_SERVER['PHP_SELF']的输出,无论如何都应该为您提供线索。

此外,在比较字符串时没有理由使用strpos;请改用===运算符,它检查参数是否具有相同的类型以及它们是否具有相同的值。