我有一个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但它不起作用。它将主动链接保留在主页链接上。
答案 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>