繁体   English   中英

使用php将活动类添加到菜单链接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM