我正在尝试找到一个使用PHP而不是jQuery的解决方案,在以下HTML标记中将“活动”类插入当前页面的相应超链接中:
<nav class="menu">
<ul>
<li><a href="/">Index</a></li>
<li><a href="/email">Email</a></li>
<li><a href="/about">About</a></li>
</ul>
</nav>
用户在/about
页面上,PHP应用了课程<a class="active" href="/about">About</a>
有一种简单的方法可以用PHP做到这一点吗?
答案 0 :(得分:2)
您需要拥有一个变量/函数,其中包含您希望在菜单中使用/区分的当前URI的确切部分。如果你“某种程度上”不能拥有它,那么解析$_SERVER['REQUEST_URI']
是一种方法。因此,它将取决于您的URI的结构,或者最后提到的变量甚至可以工作,取决于。
假设您有一个函数currentPage()
,它返回当前实际的URI的一部分,您可以使用以下
<?php
// $currentPage = currentPage();
// $currentPage = preg_replace([.............]); // ???
// $currentPage = "about"; // ?????
?>
所以既然你现在有了$currentPage
,你就可以采用不同的方法。
<ul>
<li><a <?php if ($currentPage === "") print('class="active"');?> href="/">Index</a></li>
<li><a <?php if ($currentPage === "email") print('class="active"');?> href="/email">Email</a></li>
<li><a <?php if ($currentPage === "about") print('class="active"');?> href="/about">About</a></li>
</ul>
或
<ul>
<?php
$pages = array('' => 'Index','email' =>'Email','about'=>'About');
foreach ($pages as $page => $title) {
?>
<li><a <?php if ($curretPage === $page) print('class="active"');?> href="<?php print('/'.$page);?>"><?php print($title);?></a></li>
<?php
}
?>
</ul>
答案 1 :(得分:0)
<a class="<?php
echo ($_SERVER['REQUEST_URI']=="/about"?"active":"inactive");
?>" href="/about">
About
</a>