我是网络编程的新手。我创建了一个带有通用标题的简单网站。我的标题位于名为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>
提前感谢您的帮助。我会很感激的。
答案 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
;请改用===
运算符,它检查参数是否具有相同的类型以及它们是否具有相同的值。