如何解决使用PHP的菜单活动项
我正在尝试为每个站点的活动班级制作菜单。
我不知道我在做什么错。寻求帮助:D
<li class="nav-item <?php echo $home; ?>">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item <?php echo $hry; ?>">
<a class="nav-link" href="/hry">Hry</a>
</li>
<?php
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host == 'myurl.com/') {
$home = 'active';
}
elseif ($host == 'myurl.com/hry') {
$hry = 'active';
}
else {
$home = 'non-active';
$hry = 'non-active';
}
?>
解决方法
查看您的代码,我发现问题出在这里:您正在HTML之后设置变量$home
$hry
。
您应该在输出html之前进行设置。应该是这样的:
<?php
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host == 'myurl.com/') {
$home = 'active';
}
elseif ($host == 'myurl.com/hry') {
$hry = 'active';
}
else {
$home = 'non-active';
$hry = 'non-active';
}
?>
<li class="nav-item <?php echo $home; ?>">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item <?php echo $hry; ?>">
<a class="nav-link" href="/hry">Hry</a>
</li>
,
您始终可以编写一个辅助函数:
function checkIfActive($route){
if(strpos($_SERVER['REQUEST_URI'],$route) !== false){
return "is-active";
}
return null;
}
并将每个菜单项的辅助函数插入到html中。它将根据您输入的字符串检查其是否处于活动状态
<li class="nav-item <?php checkIfActive('string_for_home_url') ?>">
<a class="nav-link" href="/">Home</a>
</li>
<li class="nav-item <?php checkIfActive('string_for_hry_url'); ?>">
<a class="nav-link" href="/hry">Hry</a>
</li>
一旦您的应用程序和菜单项开始增长,这对您来说将变得容易得多
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。