使用php的动态导航菜单包括

时间:2014-09-27 07:04:57

标签: php html twitter-bootstrap dynamic 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新手。)

2 个答案:

答案 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的结果,然后设置如下链接。