动态导航菜单使用php include


Dynamic Navigation menu using php include

我正在使用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的结果,然后将链接设置为如下所示。