php将活动类添加到下拉菜单
这是我的代码:我得到了第一个也是最后一个要工作的“li”,当$thisPage位于该页面上时,它会将类添加到活动状态。但是对于下拉菜单,我有点不知所措。我试着做了一系列的页面和其他一些事情,但并没有成功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
<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搞砸了,我可以看到这是如何工作的,但不同的类使得使用这种方法更加困难