Я не хочу обращаться к jQuery для этого решения. Я просто хочу выбрать родителя $key
из активного $value
в массиве php, чтобы при активной вкладке подменю также была активна родительская вкладка.
Пример: в массиве ниже Engineer
Ключ имеет массив внутри, чтобы указать подстраницы, которые раскрываются под этой вкладкой в меню. Когда выбрана одна из этих подстраниц, как сделать активную родительскую вкладку, поднявшись на массив, чтобы получить $key
из $value
что выбрано?
Я использую параметры URL, а не каталоги. Единственный используемый каталог /jobs/
и параметры URL ?position=
,
Полный URL будет выглядеть так:
http://computerhelpwanted.com/jobs/?position=Software+Engineer
Итак, я уже понял, как активировать вкладки подменю, теперь мне просто нужно активировать вкладки верхнего уровня, когда активна вкладка подменю.
Я добавлю еще одно условие к этому утверждению в примере кода ниже.
if (strpos($position,$filename) !== false) {
$attr_current = ' class="current"';
} else {
$attr_current = '';
}
Это работает только частично, как это с if (strpos($position,$filename) !== false)
условие, однако это не всегда будет верно. Иногда $position
не будет в $filename
и в этом случае мне нужно альтернативное решение. Предпочтительно, просто включив условие, которое говорит (when $value is selected, also select the parent $key)
Массив:
// Menu Items
$li_1 = 'Engineer';
$pages = array(
// Engineer
$li_1 => array(
'pageTitle' => $li_1,
'subpages' => array(
'Software '.$li_1 => 'Software',
'Embedded Software '.$li_1 => 'Embedded Software',
'Computer '.$li_1 => 'Computer',
'Systems-'.$li_1 => 'Systems',
'Graphics '.$li_1 => 'Graphics',
'Research Development '.$li_1 => 'R&D',
'Network '.$li_1 => 'Network',
'Network Security '.$li_1 => 'Network Security',
'Technical Support '.$li_1 => 'Technical Support',
)
),
);
Динамический список меню:
<? foreach ($pages as $filename => $value) {
if (is_array ($value)) {
$href = '#menu';
$pageTitle = $value ['pageTitle'];
} else {
$href = $dir_structure.$filename;
$pageTitle = $value;
}
if (strpos($position,$filename) !== false || $value == $currentPage) {
$attr_current = ' class="current"';
} else {
$attr_current = '';
}
echo '
<li'.$attr_current.'><a href="'.$href.'">'.$pageTitle.'</a>';
if (is_array ($value)) {
echo '
<ul class="subMenu">';
foreach ($value ['subpages'] as $subfilename => $subpageTitle) {
if ($subfilename == $position) {
$attr_current = ' class="current"';
} else {
$attr_current = '';
}
echo '
<li'.$attr_current.'><a href="'.$dir_structure.'jobs/?position='.urlencode($subfilename).'">'.$subpageTitle.'</a></li>';
} // foreach subpages
echo '
</ul>';
} // is_array
echo '
</li>';
} // foreach pages
Задача ещё не решена.
Других решений пока нет …