下表将主菜单和子菜单包含在同一列中 menu_root_id
为了 submenu
基于 menu_code
区分 main_menu
以及 submenu
. 我需要显示所有 submenu
低于 mainmenu
基于该表动态生成以下html菜单代码。请帮我怎么做?
这是我的html静态菜单代码:
<!-- 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>
这是我的动力code:but it 显示不正确。
<!-- sidebar menu -->
<ul class="sidebar-menu" data-widget="tree">
<li class="nav-devider"></li>
<li class="header nav-small-cap"></li>
<?php
$query = $this->db->get('create_menu');
$this->db->order_by("menu_order_no", "asc");
if($query -> num_rows() > 0){
foreach ($query->result_array() as $row) {
?>
<li class="treeview">
<a href="#">
<i class="fa fa-database"></i>
<span><?php if($row['menu_root_id'] == "")
{ 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 ?> <li><a href=""><?php print_r($row['menu_name']); ?></a></li><?php ?>
</ul>
</li>
<?php } } ?>
</ul>
2条答案
按热度按时间tv6aics11#
试试这个:-
很简单。基本的想法是先把主菜单上的所有内容都放在上面,然后在上面循环。然后在子菜单上循环,得到带有链接的名称。
我不知道ci。所以我把查询区域作为注解。
gijlo24d2#
首先当菜单根id为空时得到菜单代码,然后得到菜单代码,然后根据我得到相关的菜单代码结果
类似这样的代码从表名中选择菜单代码,其中菜单根id为空
那么
选择*from table name where menu root id=菜单代码
我想你用过这种方法一次