Динамическое выпадающее меню из набора результатов Mysql - PullRequest
0 голосов
/ 15 июля 2011

Я хотел бы создать динамическое меню из следующего набора результатов.

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; ?>

Сбой при закрытии закрытия.

Пожалуйста, помогите.

Спасибо

Ответы [ 2 ]

0 голосов
/ 15 июля 2011

Я немного переставил ваш 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 голосов
/ 15 июля 2011

Вы можете использовать Аккордеонное меню для этой задачи.

См. Ссылку http://chandreshmaheshwari.wordpress.com/2011/05/27/accordian-menu/

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...