我正在使用HTML / bootstrap创建一个网站,并减少我尝试使用PHP包含页脚和侧边栏的相同代码的重复,如下所示:
<html>
<body>
<?php include('navigation.php'); ?>
Contents of this page here...
<?php include('sidebar.php'); ?>
<?php include('footer.php'); ?>
</body>
</html>
我也想对导航菜单做同样的事情,但是随着每个页面突出显示的链接发生变化,我不确定如何动态更改它。 由于我使用bootstrap,只需要一些方法来操作菜单链接中的 class =“active”。 (注意:php新手。)
答案 0 :(得分:1)
有很简单的方法可以做到这一点。对我来说最好的方法是将navigation.php文件的内容放在一个带参数的函数中。然后在include之后调用该函数,并将一个数字或字符串作为参数传递,该数字或字符串表示您需要将其作为活动项。
您的功能将是这样的:
<?php
function displayNavBar($activeItem){ ?>
<li class="">
<ul class="" > <li <?php if($activeItem=="Home"){echo "class='active'";}?>>
<a href="#">Home</a></li> <li><a href="#">contact</a></li> <li class="active"><a href="#">privacy</a></li> <li><a href="#">about</a></li </ul> </li>
<?php } ?>
显然我只为第一项写了cose,你需要和其他项一样。然后在你的文件中你必须调用创建的函数:
displayNavBar("Home"):
答案 1 :(得分:1)
我不确定您网站的结构,但通常您会阅读当前网址并根据该网址设置活动类。所以使用,例如:
$current_page = $_SERVER['PHP_SELF'];
如果你在/index.php,那么你会有
$current_page = '/index.php';
然后这是一个简单的问题
<li<?php echo $current_page=='/index.php' ? ' class="active"' : ''; ?>><a href="">Home</a></li>
<li<?php echo $current_page=='/about.php' ? ' class="active"' : ''; ?>><a href="">About</a></li>
这只是一个例子。如上设置当前页面,查看使用echo的结果,然后设置如下链接。