我有一个小的php网站,其中包含一个include_once包含的菜单。我需要为每个页面添加一个HTML类添加到当前菜单项。
因此,如果用户点击链接并转到该页面,新页面将加载带有class =“current”的新菜单项。我怎么能这样做呢?
答案 0 :(得分:1)
假设您按照以下方式编写菜单:
<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,你也可以给你的锚点提供一个id(比如<a href="link1.com?menu=1" id="link1">Link1</a>
),用$ _GET获取上面的菜单值,然后使用javascript将类添加到想要的链接。
我给了你这个答案,因为根据你所写的内容,我猜你没有使用任何PHP框架,而是以旧的方式编写应用程序...这里有很多不错的PHP框架,这将有预先制作的解决方案对于这个......开始时可能很难但是值得...
祝你好运!