내 메뉴에 삼항 연산자를 추가하는 데 여전히 문제가 있습니다. menuID와 페이지 id가 같으면 class = active를 li 태그에 추가하는 것이 목적입니다. pageID는 thisPage라는 var에 저장되어 있으므로 thisPage와 menuID가 같으면 class 태그를 가져와야합니다.동적 드롭 다운 메뉴의 삼항 연산자
내가 문제를내가 함께 문제가 코드의 라인을 결정하는 데 도움이 할 수있는 코드와 PHP는 덤프를 포함 시켰습니다
는 & /// 메인 메뉴 섹션을 시작 /// 서브 메뉴에서 삼항 연산자입니다
($thisPage==$sval['menuID'] ? ' class="active"' : '')
와 나는 "$의 sval이 [ 'menuId와는']" 문제라고 생각합니다.
<?php
$ this = 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
)
)
$thisPage
'$ parent_menu'의 덤프에서 어떤 메뉴 항목에 대해서도'menuID' 키가 보이지 않습니다. –
죄송합니다. 나쁘게 ... 죄송합니다. 실수로 그 내용을 지 웠습니다 ... 이제 다시 돌려 드리겠습니다. – dmschenk
$ thisPage는 문제가 아닙니다 ... {$ sval [ 'menuID']} & {$ pval [ 'menuID']}를 두 번째 인수로 삼자로 변환합니다. 삼항 연산자 {$ sval [ 'menuID']}의 바깥 쪽은 잘 동작합니다. – dmschenk