PHP if语句使菜单链接当前链接不起作用

时间:2013-10-07 19:32:30

标签: php html

我有一个HTML水平菜单,其中包含一些PHP if语句,以查看链接是否处于活动状态。

这是HTML:

<li<?php if(dirname($_SERVER['REQUEST_URI'])."/" == '/clients/') { echo ' class="current_page_item"'; } ?>><a href="/clients/">Login</a></li>

<li<?php if($_SERVER["REQUEST_URI"] == '/clients/index.php?fuse=support&view=SubmitTicketForm') { echo ' class="current_page_item"'; } ?>><a href="/clients/index.php?fuse=support&view=SubmitTicketForm">Contact Us</a></li>

“联系我们”链接位于客户端目录中,“登录”链接是除“联系我”链接位置之外的整个“客户”目录,如果当前URL位于目录中,则客户端使“登录”链接成为活动链接但是我不希望联系我们链接发生这种情况。

我怎样才能解决这个问题?

更新 我刚试过http://pastebin.com/ePSQe0i0但它不起作用。它将主动链接保留在主页链接上。

1 个答案:

答案 0 :(得分:1)

您检查:

dirname($_SERVER['REQUEST_URI'])."/"

在这两种情况下都会是'/ clients /'。

为什么不直接检查:

<li<?php if($_SERVER['REQUEST_URI'] == '/clients/') { echo ' class="current_page_item"'; } ?>><a href="/clients/">Login</a></li>

然后留下第二个

修改

所以现在我想我明白了:检查'/ clients /'是​​$_SERVER['REQUEST_URI']的一部分,但也排除$_SERVER["REQUEST_URI"] == '/clients/index.php?fuse=support&view=SubmitTicketForm'

的特殊情况

所以这里是:

<li<?php if((dirname($_SERVER['REQUEST_URI'])."/" == '/clients/')&&(($_SERVER["REQUEST_URI"] != '/clients/index.php?fuse=support&view=SubmitTicketForm'))) { echo ' class="current_page_item"'; } ?>><a href="/clients/">Login</a></li>

<li<?php if($_SERVER["REQUEST_URI"] == '/clients/index.php?fuse=support&view=SubmitTicketForm') { echo ' class="current_page_item"'; } ?>><a href="/clients/index.php?fuse=support&view=SubmitTicketForm">Contact Us</a></li>