我这样用php生成菜单。
<?php
while($rowMenu = mysql_fetch_array($rsMenu)){
$link="category.php?cat=".$rowMenu['MenuItemID'];
$name = utf8_encode($rowMenu['name']);
?>
<a href="<?php echo $link; ?>"><li><?php echo $name; ?></li></a>
<?php
}
?>
现在我想为当前页面的项目添加背景颜色。背景颜色在css(.productActive)中定义
我搜索在php中添加一个css类,就像我用javascript制作但没有找到任何解决方案,所以我这样做了
<?php
$cat=$_GET['cat']; /gets the id from the URL
while($rowMenu = mysql_fetch_array($rsMenu)){
$link="category.php?cat=".$rowMenu['MenuItemID'];
$name = utf8_encode($rowMenu['name']);
?>
<a href="<?php echo $link; ?>"><li><?php echo $name; ?></li></a>
<?php
if($cat == $rowMenu['MenuItemID']) {
echo"<a href=".$link."><li class='productActive'>".$nome."</li></a>";
}
}//end of while
?>
但是这样可以在菜单中再添加一个项目。它重复了现在的li项目。还有其他办法吗?
由于
答案 0 :(得分:3)
while($rowMenu = mysql_fetch_array($rsMenu)){
$link="category.php?cat=".$rowMenu['MenuItemID'];
$name = utf8_encode($rowMenu['name']);
if($cat == $rowMenu['MenuItemID']) {
echo"<a href=".$link."><li class='productActive'>".$name."</li></a>";
} else {
echo"<a href=".$link."><li>".$name."</li></a>";
}
}
这应该有效,我想
答案 1 :(得分:0)
while($rowMenu = mysql_fetch_array($rsMenu)){
$link = "category.php?cat=".$rowMenu['MenuItemID'];
$name = utf8_encode($rowMenu['name']);
// add active class?
$class = $cat == $rowMenu['MenuItemID']
? ' class="productActive"'
: '';
?>
<li<?= $class; ?>><a href="<?= $link; ?>"><?= $name; ?></a></li>
<?php
}//end of while
然后,如果项目匹配,它会将该类添加到标记中,否则它将不会添加任何内容。
虽然我更喜欢这个:
printf('<li%s><a href="%s">%s</a></li>', $class, $link, $name);
<强> P.S。锚点应始终在<{em>里面} <li>
,而不是在外面。