-1

我在试图理解一些 php 代码时遇到了一些麻烦。解释:

我有一个由引导程序制成的导航栏。我希望这个导航栏根据页面更改它的活动类。我在导航栏中有一个带有 li 类“下拉菜单”的子导航。当此页面处于活动状态时,此 li 类想要更改为“下拉活动”当其他页面处于活动状态时,他们只想要一个简单的“活动”类。

我的代码如下: 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>';
   }
}
4

1 回答 1

0

你写过:

if ($pageLoc == $nav_href) && ($pageLoc == 'where')

它应该说:

if ($pageLoc == $nav_href && $pageLoc == 'where')

更一般地说,缺少详细的调试信息是一件痛苦的事,但有一些变通方法。例如,如果您删除了一半的代码并尝试再次运行它*,是否仍然会出现语法错误?如果是这样,请删除更多,看看会发生什么;如果没有,请取消删除一些,看看它是否有效。继续尝试并缩小范围,直到找到错误所在。

*(显然,不要删除会产生语法错误的方式;例如,如果删除包含 的if子句的结尾},则会得到不匹配的括号。)

于 2013-06-14T20:28:25.473 回答