向PHP菜单添加一个类


Adding a Class to PHP Menus

我有一个小的php网站,有一个菜单,通过include_once包含。我需要一个HTML类添加到每个页面的当前菜单项。

因此,如果用户单击链接并转到该页,则新页面将加载class="current"的新菜单项。我该怎么做呢?

假设你的菜单是这样写的:

<ul>
<li><a href="link1.com?menu=1"> Link1 </a></li>
<li><a href="link2.com?menu=1"> Link2 </a></li>
<li><a href="link3.com?menu=1"> Link3 </a></li>
</ul>
下面是一个很好的老式php4风格的解决方案:-p
<?php
//you get which link was clicked
if(isset($_GET['menu']) $menu = $_GET['menu'];
else $menu = 1;
$1 = $2 = $3 = ""; //you create 3 empty strings
switch($menu){ //you assign the correct string with your css class name
case "1": $1 = 'class="current"';break;
case "2": $2 = 'class="current"';break;
case "3": $3 = 'class="current"';break;
}
?>
//echo the variables into the menu anchors ( <?=$1?> is equivalent to  <? echo $1; ?> )
<ul> 
<li><a href="link1.com?menu=1" <?=$1?> >Link1</a></li>
<li><a href="link2.com?menu=2" <?=$2?> >Link2</a></li>
<li><a href="link3.com?menu=3" <?=$3?> >Link3</a></li>
</ul>

您还可以将<?=$1?>放入<li>或其他任何想要的位置…

如果你在你的项目中使用javascript,你也可以给你的锚(如<a href="link1.com?menu=1" id="link1">Link1</a>)一个id,获得菜单值像上面的$_GET,然后使用javascript添加类到所需的链接。

我给你这个答案是因为从你写的东西我猜你没有使用任何PHP框架,而是用旧的方式编码你的应用程序…这里有很多不错的PHP框架,将有预先解决这个问题…一开始可能很难,但这是值得的……

祝你好运!