[英]add active class to menu links using php
<div class="menu clearfix">
<ul>
<li><a href="./">start</a></li>
<li><a href="./?p=rating">rating</a></li>
<li><a href="./?p=upload">upload</a></li>
</ul>
有一段时间了,因为我使用了php。 是否有任何聪明的方法可以在php中进行foreach并将此菜单和一个“活动”类呈现给所单击的链接。 因此,如果活动页面为“评级”,则html会呈现:
<div class="menu clearfix">
<ul>
<li><a href="./">start</a></li>
<li><a href="./?p=rating" class="active">rating</a></li>
<li><a href="./?p=upload">upload</a></li>
</ul>
谢谢
<ul class="sub-nav" >
<?php
$full_name = $_SERVER['PHP_SELF'];
$name_array = explode('/',$full_name);
$count = count($name_array);
$page_name = $name_array[$count-1];
?>
<li><a class="<?php echo ($page_name=='where-to-buy.php')?'active':'';?>" href="where-to-buy.php">WHERE TO BUY</a></li>
<li><a class="<?php echo ($page_name=='about.php')?'active':'';?>" href="about.php">ABOUT US</a></li>
<li><a class="<?php echo ($page_name=='contact.php')?'active':'';?>" href="contact.php">CONTACT US</a></li>
请按照以下URL进行实时演示... https://webdesignerhut.com/active-class-navigation-menu/
据我了解,您想知道请求后哪个li是活动的。
如果是,则必须像$ _GET ['p']这样获得$ _GET参数。
并进行渲染,如:
foreach($ul as $li)
{
if ($_GET['p'] == $li->code)
echo 'class="active"';
}
例如:
<div class="menu clearfix">
<ul>
<?php foreach($ul as $li): ?>
<li><a href="<?php echo $li->url;?>" <?php echo $_GET['p']==$li->get ? class="active" : ''?>><?php echo $li->name;?></a></li>
<?php endforeach; ?>
</ul>
假设p
的$_GET
值是rating
(或与此相关的菜单中的任何其他链接),则可以执行以下操作:
<?php
echo "<div class=\"menu clearfix\">";
echo "<ul>";
$links = array('rating', 'upload', 'about');
foreach ($links as $link) {
$active = "";
if (!empty($_GET['p']) && $link == $_GET['p']){
$active = 'class="active"';
}
echo "<li><a href=\"./?p=$link\" $active>$link</a></li>";
}
echo "</ul></div>"
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.