Задать вопрос

Как создать раскрывающийся многоуровневый древовидный список?

Суть вопроса такова нужен раскрывающийся многоуровневый древовидный список, получающий данные из БД, уже есть код, за одним лишь исключением, что не настроено раскрывание вот скрин результата:
59d1c5bd3f959972380749.jpeg
вот код
<?
include_once("bd.php");
header("Content-Type: text/html; charset=UTF-8");
//Выбираем данные из БД
$result=mysql_query("SELECT * FROM  table1");
//Если в базе данных есть записи, формируем массив
if   (mysql_num_rows($result) > 0){
    $cats = array();
//В цикле формируем массив разделов, ключом будет id родительской категории, а также массив разделов, ключом будет id категории
    while($cat =  mysql_fetch_assoc($result)){
        $cats_ID[$cat['uid']][] = $cat;
        $cats[$cat['pid']][$cat['uid']] =  $cat;
    }
}
function build_tree($cats,$parent_id,$only_parent = false){
    if(is_array($cats) and isset($cats[$parent_id])){
        $tree = '<ul>';
        if($only_parent==false){
            foreach($cats[$parent_id] as $cat){
                $tree .= '<li>'.$cat['name'].' #'.$cat['uid'];
                $tree .=  build_tree($cats,$cat['uid']);
                $tree .= '</li>';
            }
        }elseif(is_numeric($only_parent)){
            $cat = $cats[$parent_id][$only_parent];
            $tree .= '<li>'.$cat['name'].' #'.$cat['uid'];
            $tree .=  build_tree($cats,$cat['uid']);
            $tree .= '</li>';
        }
        $tree .= '</ul>';
    }
    else return null;
    return $tree;
}
echo build_tree($cats,0);
?>
  • Вопрос задан
  • 4568 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
rework
@rework
Помог ответ? В благодарность отметь его решением
Вот вам простой пример на Jquery - https://codepen.io/anikey99/pen/GJLdrZ
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы