2017-08-16 198 views
0

我正在網站和該網站上工作,並希望顯示類別>子類別>子類別。使用php顯示類別,子類別和子類別

類別正在展示。但我也想顯示子類別。

這裏是類別代碼

<select> 
     <option>Select Category</option> 
       <?php 
       $query="select * from mydb"; 
       $result=mysqli_query($connect,$query); 
       while($r=mysqli_fetch_assoc($result)) 
       { 
       ?> 
     <option value="<?php echo $r['id']?>"><?php echo $r['title']?></option>          
    <?php } ?> 
    </select> 

顯示像這樣: - enter image description here

想DISPLA像這樣: - enter image description here

+0

您是否將這種層次結構存儲在數據庫中? – sauerburger

+0

@sauerburger這只是演示。我會改變它。如果您知道如何顯示子類別,請讓我知道 – Unidan

回答

0

所有你需要一種方法來存儲類別的層次結構中的第一你的數據庫。一個簡單的方法(當然不是最好的方法,因爲它依賴於排序)是向表中添加一個整數列,指定該類別具有多少「子」前綴。我假設這一欄被稱爲level

其次,期望的輸出使用複選框而不是選項列表。爲了得到這種類別/子類別的輸出,你可以嘗試:

<input type="checkbox" style="margin-left: 0px" /> Category <br /> 
<input type="checkbox" style="margin-left: 20px" /> Sub-Category <br /> 

爲了產生類似上述情況,與

<?php 
$query="select * from mydb"; 
$result=mysqli_query($connect,$query); 
while($r=mysqli_fetch_assoc($result)) 
{ 
    $id = $r['id']; 
    $indent = $r['level'] * 20; 
    $title = $r['title']; 
    echo "<input type=\"checkbox\" value=\"$id\" style=\"margin-left: ${indent}px\" />$title<br />";  
}        
?> 

我建議添加另一列(如my_order)和替換代碼添加用select * from mydb order by my_order asc替換查詢來控制類別的排序。