如何基于php中的表值使菜单动态化?

时间:2018-09-27 07:04:41

标签: php html mysql codeigniter

下表在同一列中包含主菜单和子菜单。我在menu_root_id的基础上提到submenu的{​​{1}},以区分menu_codemain_menu 。 我需要根据该表将submenu下的所有submenu动态显示到以下HTML菜单代码中。请帮我怎么做?

enter image description here

这是我的html静态菜单代码:

mainmenu

这是我的动态代码:但是显示不正确。

         <!-- sidebar menu -->
          <ul class="sidebar-menu" data-widget="tree">
            <li class="nav-devider"></li>
            <li class="header nav-small-cap"></li>

            <li class="treeview">
              <a href="#">
                <i class="fa fa-database"></i>
                <span>Main Menu1</span>
                <span class="pull-right-container">
                  <i class="fa fa-angle-right pull-right"></i>
                </span>
              </a>
              <ul class="treeview-menu">
                <li><a href="">Sub menu1</a></li>
                <li><a href="">Sub menu2</a></li>            
                <li><a href="">Sub menu3</a></li>
              </ul>
            </li>

             <li class="treeview">
              <a href="#">
                <i class="fa fa-user"></i>
                <span>Main Menu2</span>
                <span class="pull-right-container">
                  <i class="fa fa-angle-right pull-right"></i>
                </span>
              </a>
              <ul class="treeview-menu">
                <li><a href="">Sub menu4</a></li>
                <li><a href="">Sub menu5</a></li>            
                <li><a href="">Sub menu6</a></li>
              </ul>
            </li>
          </ul>

2 个答案:

答案 0 :(得分:1)

首先,当菜单根ID为null时,您将获得菜单代码,然后获得菜单代码,然后可以根据我的要求获得相关的菜单代码结果

像这样的

代码 从表名称中选择菜单代码,其中菜单根ID为空

然后

从表名称中选择*,其中菜单根ID =菜单代码

我认为您一次应用了这种方法

答案 1 :(得分:1)

尝试一下:-

<ul class="sidebar-menu" data-widget="tree">
  <li class="nav-devider"></li>
  <li class="header nav-small-cap"></li>
  <?php
    // Get here all the main menu's in $query by having the condition that menu_root_id=null
    if($query->num_rows() > 0) {
      foreach ($query->result_array() as $row) {
  ?>
  <li class="treeview">
    <a href="#">
      <i class="fa fa-database"></i>
      <span><?php echo $row['menu_name']; ?></span>
      <span class="pull-right-container">
        <i class="fa fa-angle-right pull-right"></i>
      </span>
    </a>
    <ul class="treeview-menu">
      <?php
        // Get here all the sub menu's in $query1 by having the condition that menu_root_id=$row['menu_code']
        if($query1->num_rows() > 0) {
          foreach ($query1->result_array() as $row1) {
      ?>
      <li><a href="<?php echo $row1['menu_path']; ?>"><?php echo $row1['menu_name']; ?></a></li>
      <?php
          }
        }
      ?>
    </ul>
  </li>
  <?php
      }
    }
  ?>
</ul>

简单。基本思想是首先获取所有主菜单,然后在其上循环。之后,在子菜单上循环并获得带有链接的名称。
我不知道CI。所以我离开了查询区域作为评论。