【问题标题】:Active Class in Navbar - Whats wrong with my php?导航栏中的活动类 - 我的 php 有什么问题?
【发布时间】:2013-06-14 16:42:45
【问题描述】:

我在试图理解一些 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>';
   }
}

【问题讨论】:

  • 我将首先打开if 部分之外的标签,并在满足您的条件时添加正确的类。这将简化事情并更容易发现错误。

标签: php arrays foreach navbar


【解决方案1】:

你写过:

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

应该说:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2017-12-17
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多