【发布时间】:2011-12-07 19:30:16
【问题描述】:
我正在使用 PHP 包含来输入我的标题,其中当然包含我的导航菜单。
导航菜单部分的“header.php”代码如下:
$nav = array("Home","About","Portfolio","Products","Services","Contact");
foreach($nav as $item)
{
$class = '';
$href = $item;
if($item == "Home")
{
$class = 'class="current-menu-ancestor parent"';
$href = 'index';
}elseif($item == $title){
$class = 'class="current-menu-ancestor parent"';
}
echo "<li $class><a href='$href.php'>$item</a></li>";
}
对不起,如果它有点乱。
它从相关页面获取$title,将在页面上显示的示例代码是:
$title = "Home";
include("header.php");
现在看起来一切正常,正确的导航菜单项在那里,它们都链接到正确的位置等,'home' 实际上是 'index.php' 而不是 'home.php' 如在 'header. php' 上面。
在“主页”页面上时,“主页”页面导航菜单项会突出显示,因为它应该表明用户在该页面上,但是,当我转到任何其他页面时,例如说“ about' 页面,它突出显示了 'about' 导航菜单项以及 'home' 导航菜单项。
我哪里错了?
【问题讨论】:
-
您总是在循环中通过条件 $item == "Home" 一次,因此将始终设置类。所以你需要改变/扩大你的条件
-
你能发布输出的 HTML 吗?
标签: php html if-statement include foreach