繁体   English   中英

将分层数据表显示到php codeigniter菜单树视图中

[英]Display a hierarchical data table into php codeigniter menu tree view

我创建了一个树视图数据表,如下所示:

id | parent_id | name
1     null       Japan
2     1          Tokyo
3     2          Nerima
4     2          Chiyoda
5     null       America
6     5          New York
7     5          Washington

我想检索数据并在树菜单中查看。 这是我的html代码:

<ul class="sidebar-menu">                                                                                        
     <li class="treeview">
            <a href="#">
              <i class="fa fa-institution"></i>
              <span>Japan</span>
            </a>
            <ul class="treeview-menu">
                <li>
                   <a>Tokyo</a>
                   <ul class="treeview-menu">
                      <li><a>Nerima</a></li>
                      <li><a>Chiyoda</a></li>
                   </ul>
                </li>
            </ul>
     </li>
     <li class="treeview">
          <a><span>America</span></a>
          <ul class="treeview-menu">
              <li><a>New York</a></li>  
              <li><a>Washington</a></li>                          
          </ul>
     </li>
</ul>

这是我的查询代码:

$query = "SELECT * FROM menu_tree WHERE parent_id='".$parent_id."' ORDER BY name";

我做了一些研究,但找不到将数据数组显示到预期菜单树中的方法。 有什么办法可以解决吗?

经过研究,我找到了解决方案。 在下面调用此功能将显示预期的菜单。 对于那些面临同样问题的人。

function build_menu($rows,$parent)
    {
        $temp = "<ul class=\"treeview-menu\">";
        $result = "";
        foreach ($rows as $row)
        {
            if ($row['parent_id'] == $parent){

                $result.= "<li class=\"treeview\"><a href=" . site_url('admin/dashboard?id=') . $row['id'] ."><span>{$row['name']}</span></a>";
                if ($this->has_children($rows,$row['id']))
                    $result.= $temp . $this->build_menu($rows,$row['id']);                   
            }
        }
        $result.= "</ul>";

        return $result;
    }
    function has_children($rows,$id)
    {
        foreach ($rows as $row) {
            if ($row['parent_id'] == $id)
            return true;            
        }
        return false;
    }
}

这是视图文件中的代码:

<ul class="sidebar-menu">        
    <?php echo $CI->menu_tree->build_menu($menu_tree,0);?>                                                                                                                          
</ul>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM