我在试图解决一些PHP代码时遇到了一些麻烦。 解释:
我有一个由bootstrap制作的导航栏。 我希望这个导航栏根据页面更改它的活动类。 我在导航栏中有一个subnav,有一个li类'dropdown'。 当此页面处于活动状态时,此li类要更改为“dropdown active” 当其他页面处于活动状态时,他们只需要一个简单的“活动”类。
我的代码如下: PHP:
$pageLoc = 'where';
$nav_items = array('index'=>'Home', 'where'=>'Where?', 'appeals'=>'Current Appeals', 'news'=>'Latest News', 'events'=>'Events', 'dontate'=>'Dontate', );
$nav_sub = array('africa'=>'Africa', 'bangladesh'=>'Bangladesh', 'gaza'=>'Palestine/Gaza', 'kashmir'=>'Kashmir', 'pakistan'=>'Pakistan', 'uk'=>'United Kingdom' );
foreach ($nav_items as $nav_href=>$nav_title) {
if ($pageLoc == $nav_href) && ($pageLoc == 'where') {
echo '<li class="dropdown active">' . $nav_title . '</li>';
}
elseif ($pageHref == $nav_href) && ($pageLoc == 'no') {
echo '<li class="dropdown">' . $nav_title . '</li>';
}
elseif ($pageHref == $nav_href) {
echo '<li class="active">' . $nav_title . '</li>';
}
else {
echo '<li>' . $nav_title . '</li>';
}
}
导航栏:
<ul class="nav pull-right">
<li class="pull-right">
<a class="btn-danger" href="donate"><i class="icon-medkit"> DONATE!</i></a>
</li>
</ul>
<ul class="nav pull-right">
<li class="">
<a href="../">Home</a>
</li>
<li class="dropdown">
<a href="../where/" class="dropdown-toggle disabled" data-toggle="dropdown">
Where?
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li class="nav-header">Where we operate</li>
<li class="divider"></li>
<li><a href="../where/africa">Africa</a></li>
<li><a href="../where/bangladesh">Bangladesh</a></li>
<li><a href="../where/palestine-gaza">Palestine/Gaza</a></li>
<li><a href="../where/kashmir">Kashmir</a></li>
<li><a href="../where/pakistan">Pakistan</a></li>
</ul>
</li>
<li class="">
<a href="../appeals">Current Appeals</a>
</li>
<li class="">
<a href="../news">Latest News</a>
</li>
<li class="">
<a href="../events">Events</a>
</li>
</ul>
我知道这个php正在生成语法错误。不幸的是我不是专业人士! :(这是
what I originally had:
foreach ($nav_items as $nav_href=>$nav_title) {
if ($pageHref == $nav_href) {
echo '<li class="active">' . $nav_title . '</li>';
}
else {
echo '<li>' . $nav_title . '</li>';
}
}
答案 0 :(得分:0)
你写过:
if ($pageLoc == $nav_href) && ($pageLoc == 'where')
应该说:
if ($pageLoc == $nav_href && $pageLoc == 'where')
更一般地说,缺少详细的调试信息很痛苦,但有一些解决方法。例如,如果删除一半代码并尝试再次运行*,它是否仍会出现语法错误?如果是这样,删除一点,看看会发生什么;如果没有,取消删除一些,看看它是否有效。继续尝试并缩小范围,直到找到错误的位置。
*(显然,不要以创建语法错误的方式删除;例如,如果删除包含if
的{{1}}子句的结尾,您将获得非 - 匹配括号。)