我正在使用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新增。)
有很多简单的方法可以做到这一点。对我来说,最好的方法是将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"):
我不确定你的网站的结构,但通常你会读取当前的url并根据它设置活动类。因此使用,例如:
$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的结果,然后将链接设置为如下所示。