2011-07-15 30 views
0

我想從下面的結果集中創建一個動態菜單。Mysql的動態下拉菜單結果集

result set

HTML結構應該如下,

<ul class="menu"> 

<li>Menu 1</li> 
    <ul class='submenu'> 
    <li>Submenu1</li> 
    <li>Submenu2</li> 
    </ul>  
<li>Menu2</li> 
    <ul class='submenu'> 
    <li>Submenu1</li> 
    <li>Submenu2</li> 
    </ul> 
<li>Menu 3</li> 
</ul> 

嘗試作爲以下,

<?php $cat = 0;?> 
<?php foreach($this->submenus as $submenu): ?> 

     <?php if($cat!= $submenu->category_id): ?> 


         <li><?php echo $submenu->category_name ?></li> 

         <?php echo (!empty($submenu->subcategory_name))?'<ul>':'';  ?> 

         <?php $flag = $submenu->category_id; ?> 

     <?php endif;?> 

         <li class='sub'><?php echo $submenu->subcategory_name ?></li> 

     <?php if($cat!= $flag && $cat > 0): ?> 
       </ul> 
     <?php endif;?>           

       <?php $cat = $submenu->category_id;?> 


<?php endforeach; ?> 

它未能當接近關閉。

請幫忙。

謝謝

+0

你是什麼意思與「失敗」。你有錯誤嗎? –

+0

子菜單ul沒有正常關閉 – abhis

回答

0

我已經重新安排你的PHP代碼了一下,請嘗試以下方法:

<?php $cat = 0;?> 
<?php $submenu_flag = 0;?> 

<?php foreach($this->submenus as $submenu): ?> 

     <?php if($cat!= $submenu->category_id): ?> 


       <?php if($submenu_flag > 0): ?> 
         </ul> 
       <?php $submenu_flag = 0;?> 
       <?php endif;?>           

         <li><?php echo $submenu->category_name ?></li> 


       <?php if(!empty($submenu->subcategory_name)): ?> 
         <ul> 
          <?php $submenu_flag = 1; ?> 
       <?php endif;?>           


     <?php endif;?> 


      <?php echo (!empty($submenu->subcategory_name))?'<li class='sub'><?php echo $submenu->subcategory_name ?></li>':'';  ?> 


      <?php $cat = $submenu->category_id;?> 


<?php endforeach; ?> 
+0

哇...太好了。你是個天才。它完美的工作。非常感謝:-) – abhis

+0

不客氣。 –