У меня все еще возникают проблемы с добавлением тернарного оператора в мое меню. Его цель - добавить class = active к тегу li, если идентификатор меню и идентификатор страницы совпадают. Идентификатор страницы хранится в переменной с именем thisPage ... поэтому, когда thisPage и menuID равны, я должен получить тег класса.
Я включил код и дамп php, чтобы помочь определить проблему.
Строка кода, с которой у меня возникла проблема, - это тернарный оператор в разделах /// SUB MENU и /// MAIN MENU, начиная с
($thisPage==$sval['menuID'] ? ' class="active"' : '')
Я думаю, что проблема в "$ sval ['menuID']".
<?php
$ thisPage = 3; //
$sql = "SELECT menuID, menuTitle, menuURL, menuParentID, menuOrderID FROM menu ORDER BY menuParentID, menuOrderID ASC";
$items = mysql_query($sql);
while ($obj = mysql_fetch_object($items)) {
if ($obj->menuParentID == 0) {
$parent_menu[$obj->menuID]['menuID'] = $obj->menuID;
$parent_menu[$obj->menuID]['menuTitle'] = $obj->menuTitle;
$parent_menu[$obj->menuID]['link'] = $obj->menuURL;
} else {
$sub_menu[$obj->menuID]['menuID'] = $obj->menuID;
$sub_menu[$obj->menuID]['parent'] = $obj->menuParentID;
$sub_menu[$obj->menuID]['menuTitle'] = $obj->menuTitle;
$sub_menu[$obj->menuID]['link'] = $obj->menuURL;
if (!isset($parent_menu[$obj->menuParentID]['count'])) {
$parent_menu[$obj->menuParentID]['count'] = 0;
}
$parent_menu[$obj->menuParentID]['count']++;
}
}
mysql_free_result($items);
function create_menu($parent_array, $sub_array, $qs_val = "menu", $main_id = "nav", $sub_id = "dropdown-menu", $dd_style = "dropdown")
{
$menu = "<ul class=\"{$main_id}\">\n";
foreach ($parent_array as $pkey => $pval) {
if ( ! empty($pval['count'])) {
//DROP-DOWN MENUS
$menu .= "\t<li class=\"{$dd_style}\"><a href=\"{$pval['link']}\" class=\"dropdown-toggle\" data-toggle=\"$dd_style\">{$pval['menuID']} - {$pval['menuTitle']}<b class=\"caret\"></b></a>\n";
$menu .= "\t\t<ul class=\"{$sub_id}\">\n";
foreach ($sub_array as $sval) {
if ($pkey == $sval['parent']) {
///////////////////////////////////////SUB MENUS
$menu .= "\t\t\t<li" . ($thisPage==$sval['menuID'] ? ' class="active"' : '') . "><a href=\"{$sval['link']}\">{$sval['menuID']} - {$sval['menuTitle']}</a></li>\n";
}
}
$menu .= "</ul></li>\n";
} else {
////////////////////////MAIN MENUS
$menu .= "\t<li" . ($thisPage==$pval['menuID'] ? ' class="active"' : '') . "><a href=\"{$pval['link']}\">{$pval['menuID']} - {$pval['menuTitle']}</a></li>\n";
}
}
return $menu . "</ul>\n";
}
?>
<?php
echo create_menu($parent_menu, $sub_menu, "menu", "nav", "dropdown-menu");
?>
////////////////////////////////
//////////// PHP DUMP///////////
////////////////////////////////
//PAGE QUERY
[query_rsPageContent] => SELECT * FROM pages WHERE pageID = 3
[rsPageContent] => Resource id #4
[row_rsPageContent] => Array
(
[pageID] => 3
[menuParentID] => 0
[pageRbnTitle] => Ministries
[pageTitle] => Ministries
[pageContent] => Ministries Content
[pageDescripition] =>
[pageKeywords] =>
)
[totalRows_rsPageContent] => 1
[thisPage] => 3
//MENU QUERY
[sql] => SELECT menuID, menuTitle, menuURL, menuParentID, menuOrderID FROM menu ORDER BY menuParentID, menuOrderID ASC
[items] => Resource id #7
[obj] =>
[parent_menu] => Array
(
[1] => Array
(
[menuID] => 1
[menuTitle] => Title 1
[link] => 1.php
)
[2] => Array
(
[menuID] => 2
[menuTitle] => Title 2
[link] => #
[count] => 1
)
[3] => Array
(
[menuID] => 3
[menuTitle] => Title 3
[link] => 3.php
)
)
$parent_menu
я не вижу ключаmenuID
ни для одного пункта меню. - person Michal Brašna   schedule 06.02.2014$thisPage
присутствует. - person Michal Brašna   schedule 06.02.2014