1
foreach ($nav_items as $nav_href=>$nav_title=>$nav_class) {
    if ($pageHref == $nav_href) {
        echo '<li class="' . $nav_class .  'active">' . $nav_title . '</li>';
    } else {
        echo '<li class="' . $nav_class . '">' . $nav_title . '</li>';
    }
}

上記のコードの何が問題になっていますか? これは、以下の配列に対応します。

$pageLoc = 'where';
$nav_items = array(
    'index'=>'Home'==>'', 
    'where'=>'Where?'==>'dropdown'==>'', 
    'appeals'=>'Current Appeals'==>'', 
    'news'=>'Latest News'==>'', 
    'events'=>'Events'==>'', 
    'dontate'=>'Dontate'==>'', 
);

私は基本的に、アクティブなクラスをリスト項目の前に配置しようとしていますが、それが一致するだけでなく、ドロップダウンメニュー項目$pageLocが単純ではない場合:常に必要です! アクティブな場合は、<li class="">'where?'<li class="dropdown"><li class="dropdown active">

4

4 に答える 4

2

完全な構文エラーがあります:

foreach ($nav_items as $nav_href=>$nav_title=>$nav_class) {
                                            ^^^^^^^^^^^^

構文は次のとおりです。

foreach($array as $key => $value)

を持つことはできません=> $value1 => $value2 etc...

于 2013-06-14T17:06:13.167 に答える
0

あなた$nav_itemsはかなり混乱しており、正しい配列ではありません。

$pageLoc = 'where';
$nav_items = array('index'=>'Home==>', 'where'=>'Where?==>', 'appeals'=>'Current Appeals==>', 'news'=>'Latest News==>', 'events'=>'Events==>', 'dontate'=>'Dontate==>');


foreach ($nav_items as $nav_class=>$nav_title) {
   if ($pageLoc == $nav_href) {
         echo '<li class="' . $nav_class .  'active">' . $nav_title . '</li>';
   } 
   else {
       echo '<li class="' . $nav_class . '">' . $nav_title . '</li>';
   }
}
于 2013-06-14T17:39:44.787 に答える