2015-05-12 4 views
0

Привет, старшие кодеры.Создание динамического Navbar на основе результатов SQL?

Im пытается сделать раздел магазина частью веб-сайта, который включает навигационную панель боковой панели, которую можно щелкнуть, чтобы указать разделы продукта, например. электрический или cctv. Я уже сделал это, выделяя продукты категории, а затем генерировать Navbar я все-опрос категорий, а затем цикл по созданию HTML, так что панель отображает все категории

Пример

<div class="leftside" id="leftbar"> 
<nav class="menu-top"> 
    <ul class="off-canvas-list" style="font-size: 25px;font-weight: bold"> 
     <li style="padding-top: 2.7rem"></li> 
     <?php foreach ($item_list as $list) { 
      echo "<li><a href='/welcome/shop_search/" . $list->type . "'>" . $list->type . "</a></li>"; 
     } 
     ?> 
    </ul> 
</nav> 

Проблема заключается в том, что я хочу иметь возможность использовать подкатегории, но у меня нет подсказки о том, как следует указывать данные SQL, а также как включить интеллект в цикл, добавив основные категории, например, так и затем добавьте выпадающие подкатегории.

+------------+----------------+------+-----+---------+ 
| ID   | Name   | Main | Sub | Parent | 
+------------+----------------+------+-----+---------+ 
| 1   | Cabling  | 1 | 0 |   | 
| 2   | network cable | 0 | 1 | cabling | 
| 2   | electric cable | 0 | 1 | cabling | 
+------------+----------------+------+-----+---------+ 

это, как я создал мой SQL и я стремлюсь поставить какое-то логично, если заявление, как некоторое связывание подкатегорий в основную категорию, так когда цикл закончит его создает Navbar с сетью, являющейся кнопками и подкатегориями в сворачиваемом внутри соответствующего основного.

ответ

0

Вы должны сделать еще один выбор в каждой итерации:

<div class="leftside" id="leftbar"> 
<nav class="menu-top"> 
<ul class="off-canvas-list" style="font-size: 25px;font-weight: bold"> 
    <li style="padding-top: 2.7rem"></li> 
    <?php foreach ($item_list as $list) { 
     echo "<li><a href='/welcome/shop_search/" . $list->type . "'>" . $list->type . "</a></li>"; 


     //select * from types where sub=list->type 
     //$num_rows = mysql_num_rows($select) 
     if($num_rows>0){ 
      echo '<ul>'; 
       //for each 
       //sub 
      echo '</ul>'; 
     } 
    } 
    ?> 
</ul> 

Для дизайна я рекомендую вам bootstrap navbar

+0

Вы можете увидеть это быть какие-либо проблемы в структуре MVC? Я использую академию кода – Rlemm1991

+0

Нет никакой проблемы, если вы не хотите делать выбор в представлении, вы можете сохранить подпункты в том же главном массиве (многомерном), но вам придется писать обе петли в контроллере ранее. – jpintor

+0

спасибо за помощь, я закончил тем, что использовал вашу идею, но с помощником вместо этого, чтобы она была чище ;-) – Rlemm1991

Смежные вопросы