php将活动类添加到下拉菜单

php将活动类添加到下拉菜单,php,if-statement,Php,If Statement,这是我的代码:我得到了第一个也是最后一个要工作的“li”,当$thisPage位于该页面上时,它会将类添加到活动状态。但是对于下拉菜单,我有点不知所措。我试着做了一系列的页面和其他一些事情,但并没有成功 <ul class="nav sf-menu"> <li><a href="index.php" <?php if ($thisPage == 'index'){?> class="active"<?php }?>>Home&l

这是我的代码:我得到了第一个也是最后一个要工作的“li”,当$thisPage位于该页面上时,它会将类添加到活动状态。但是对于下拉菜单,我有点不知所措。我试着做了一系列的页面和其他一些事情,但并没有成功

<ul class="nav sf-menu">
    <li><a href="index.php" <?php if ($thisPage == 'index'){?> class="active"<?php }?>>Home</a></li>
    <li class="sub-menu"><a href="javascript:{}">About</a>          
      <ul>
        <li><a href="team.php"><span>--</span> The Team</a></li>
        <li><a href="about.php"><span>--</span> About</a></li>
        <li><a href="services.php"><span>--</span> Services</a></li>
        <li><a href="testimonials.php"><span>--</span> Testimonials</a></li>
        <li><a href="timeline.php"><span>--</span> Timeline</a></li>
      </ul>
    </li>
    <li><a href="gallery.php" <?php if ($thisPage == 'gallery'){?> class="active"<?php }?>>Gallery</a></li>
</ul>

在这里,阵列可能是您应该采用的方式。使用多维数组并进行迭代,请参见下文。递归使用函数可以减少/增加代码的健壮性。这将适用于您的菜单以及具有多个子级别的菜单

$menu = array(
    'index'=>'Home',
    'about'=>array(
        'team'=>'The Team',
        'about'=>'About',
        'services'=>'Services',
        'testimonials'=>'Testimonials',
        'timeline'=>'Timeline'
    ),
    'gallery'=>'Gallery'
);

function create_menu($menu,$thisPage)
{
    $i = 1;
    foreach ($menu as $page=>$title)
    {
        if (is_array($title))
        {
            echo '<ul>';
            create_menu($title);
        }
        else
        {
            $active    = ($thisPage == $page) ? "active":"";
            echo  "<li><a class=\"$active\" href=\"{$page}.php\"><span>--</span> {$title}</a></li>";
            echo (count($menu) == $i) ? "</ul>":"";

            $i++;
        }
    }
}

// ehco'ing out in this example, but probably better to store in a variable before echoing
echo '<ul>';
create_menu($menu,'index'); // here you pass in $thisPage like so create_menu($menu,$thisPage);
echo '</ul>';
$menu=array(
“索引”=>“主页”,
'关于'=>数组(
“团队”=>“团队”,
“关于”=>“关于”,
“服务”=>“服务”,
“推荐信”=>“推荐信”,
“时间线”=>“时间线”
),
“画廊”=>“画廊”
);
函数创建菜单($menu,$thisPage)
{
$i=1;
foreach($菜单为$页面=>$标题)
{
if(is_数组($title))
{
回声“
    ”; 创建菜单($title); } 其他的 { $active=($thisPage==$page)?“active”:“; 回声“
  • ”; 回声(计数($menu)=$i)?“
”:”; $i++; } } } //在这个例子中,ehco'ing是不存在的,但是在回音之前最好存储在一个变量中 回声“
    ”; 创建菜单($menu,'index');//在这里您传入$thisPage,就像创建菜单($menu,$thisPage); 回声“
”;
您可以使用多个
条件:

<li class="sub-menu"><a <?php echo ($thisPage == 'team' || $thisPage == 'about' || $thisPage == 'services' || $thisPage == 'testimonials' || $thisPage == 'timeline') ? 'class="active"' : ''?> href="javascript:{}">About</a>
  • 或者优选阵列:

    <?php $aboutPages = array('team','about','services','testimonials','timeline'); ?>
    <li class="sub-menu"><a <?php echo in_array($thisPage,$aboutPages) ? 'class="active"' : ''?> href="javascript:{}">About</a>    
    
    
    

  • 请写下如何定义变量$thisPage。这里是Adam$GlobalServer=“http://”。basename($\u SERVER['DOCUMENT\u ROOT'])。“/”$GlobalPath=basename($_服务器['SCRIPT_NAME'])$pathInfo=pathInfo(basename($_SERVER['SCRIPT_NAME'])$thisPage=$pathInfo['filename']?>单击about的任何子菜单时,我只需要能够添加class=“active”即可。我让它为其他的工作,但他们不是子菜单谢谢你的人,这就像一个魅力。我之前也有类似的东西,但看到你们的代码,我在_arrayThank you搞砸了,我可以看到这是如何工作的,但不同的类使得使用这种方法更加困难