Выпадающее меню из MYSQL

344
17 февраля 2019, 08:40

Как реализовать выпадающее меню с данными из mysql?

К примеру, у меня есть вот такой HTML код меню

<li>                        
    <span>Транспот</span>                           
    <ul> 
            <li><a href="#">Самолет</a></li>
            <li><a href="#">Поезд</a></li> 
            <li><a href="#">Автобус</a></li>
            <li><a href="#">Автомобиль</a></li>                                     
    </ul>
</li>

Сначала идет основной раздел, т.е. родительский элемент меню, а после идут дочерние элементы меню.

структура базы выглядит так:

id, menutitle,  link, parent

тут, думаю, тоже особо ничего не надо объяснять, всего лишь уделю внимание на колонку parent, где будет храниться ID родительского элемента.

Как вывести это всё из базы в виде вышеуказанного HTML кода?

Answer 1

Как то так, в массиве($array) должны быть данные из БД:

<li>                        
    <span>Транспот</span>                           
    <ul> 
    <?php foreach($array as $item) { ?>
            <li><a href="<?= $item['id'] ?>"><?= $item['menutitle'] ?></a></li>  
    <?php } ?>                                 
    </ul>
</li>
Answer 2
  function DrawMenu($id,$menu)
  {
    $result = '';
    if(isset($menu[$id]))
    {
      $result .= "<ul>";
      foreach($menu[$id] as $val)
      {
        $result .= "<li><a href='./page/".$val['id']."' >".$val['description']."</a>";
          $result .= DrawMenu($val['childs'],$menu);
        $result .= "</li>";
      }
      $result .= "</ul>";
    } 
    return $result;
  }

Функция реурсивного вывода меню. Массив под такой вывод должен быть подготовлен, глубина вложенности не имеет значения.

READ ALSO
yii2 unit test не создает запись в базе данных

yii2 unit test не создает запись в базе данных

Всем приветПомогите разобраться с юнит тестами в Yii2 Advanced: Написал код unit test:

251
Бот для страницы ВК

Бот для страницы ВК

Чтобы сделать бота в ВК для сообщества, есть тонна исходниковА для личной страницы решений нет

215
Вывод html кода с помощью echo

Вывод html кода с помощью echo

Имеется массив из 32 подобных элементов:

286