1

我试图找到一个解决方案来使用 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 做到这一点?

4

2 回答 2

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>
于 2013-05-30T00:48:38.443 回答
0
<a class="<?php
     echo ($_SERVER['REQUEST_URI']=="/about"?"active":"inactive");
?>" href="/about">
    About 
</a>
于 2013-05-30T00:40:09.757 回答