PHP动态菜单从数据库突出显示

时间:2013-05-13 20:07:51

标签: php database url navigation highlight

我一直在为一个基于1页的客户建立一个网站,链接指向不同的类别或文章。我正在显示内容,具体取决于URL参数,

<a href="index.php?cat_id=<?php echo $category['cat_id']" >

通常根据我会做这样的事情做一个导航高亮,

PHP

<ul>
    <li <?php if($pagename == "index.php"){ echo 'class="selected"'; } ?>>
        <a href="index.php">Home</a>
    </li>
    <li <?php if($pagename == "about.php"){ echo 'class="selected"'; } ?>>
        <a href="about.php">About</a>
    </li>
    <li <?php if($pagename == "services.php"){ echo 'class="selected"'; } ?>>
         <a href="services.php">Services</a>
    </li>
<ul>

但我的URL在数据库中是动态的,如此,

PHP

<ul>
    <li><a href="index.php">Home</a></li>
    <?php while ($category = $statement->fetch()) { ?>
        <li><a href="index.php?cat_id=<?php echo $category['cat_id']; ?>"><?php echo $category['cat_name']; ?></a></li>
    <?php 
         }  
    ?>
</ul>

所以我想知道当URL包含参数id时,如何将类selected添加到链接cat_id?在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

<?php if($category['cat_id']==$_GET['cat_id']){ echo 'class="selected"';}?>

答案 1 :(得分:1)

如果类别ID不随时间变化:

if($_GET['category_id'] == "1" ){ echo 'class="selected"'; }

如果分类ID随时间而变化,则需要执行预查询以获取分类ID到页面的映射。然后你可以做类似的事情:

if($_GET['category_id'] == $categories['home_page'] ){ echo 'class="selected"'; }