Выберите Parent li как активный, когда child li активен, используя многомерный массив php

Я не хочу обращаться к 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

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector