Подскажите как исправить ошибку. Многоуровневое меню 3 уровня. Первые 2 уровня открываются нормально. При открытии 3 уровня, всё сворачивается. Использую bootstrap вот эту тему (
https://appstack.bootlab.io/dashboard-analytics.ht... multi level
Строю меню так
function getCat($link){
$sql = "SELECT id, parent_id, name,link FROM category WHERE parent_id != -1 ORDER BY sort,id";
$result = mysqli_query($link,$sql);
//Создаем масив где ключ массива является ID меню
$cat = array();
while ($row = mysqli_fetch_assoc($result)) {
$cat[$row['id']] = $row;
}
return $cat;
}
function getTree($dataset) {
$tree = array();
foreach ($dataset as $id => &$node) {
//Если нет вложений
if (!$node['parent_id']){
$tree[$id] = &$node;
}else{
//Если есть потомки то перебераем массив
$dataset[$node['parent_id']]['childs'][$id] = &$node;
}
}
return $tree;
}
$cat = getCat($link);
//Создаем древовидное меню
$tree = getTree($cat);
//Шаблон для вывода меню в виде дерева
function tplMenu($category){
$menu = '<li class="sidebar-item">
<a href="#multi'.$category['id'].'" data-toggle="collapse" class="sidebar-link collapsed"> <span class="align-middle">'.$category['name'].'</span></a>';
if(isset($category['childs'])){
$i++;
$menu .= '<ul id="multi'.$category['id'].'" class="sidebar-dropdown list-unstyled collapse" data-parent="#sidebar">
'. showCat($category['childs']) .'</li>
</ul>';
}
$menu .= '</li>';
/*** Рекурсивно считываем наш шаблон**/
function showCat($data){
$string = '';
foreach($data as $item){
$string .= tplMenu($item);
}
return $string;
}
//Получаем HTML разметку
$cat_menu = showCat($tree);
Разметка работающего меню такая
<nav id="sidebar" class="sidebar">
<div class="sidebar-content ">
<ul class="sidebar-nav">
<li class="sidebar-item">
<a href="#multi" data-toggle="collapse" class="sidebar-link" aria-expanded="true"> <span class="align-middle">1 уровень</span></a>
<ul id="multi" class="sidebar-dropdown list-unstyled collapse" data-parent="#sidebar" style="">
<li class="sidebar-item">
<a href="#multi-3" data-toggle="collapse" class="sidebar-link collapsed" aria-expanded="false">2 уровень</a>
<ul id="multi-3" class="sidebar-dropdown list-unstyled collapse" style="">
<li class="sidebar-item">
<a class="sidebar-link" href="#">3 уровень</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</nav>