layui tree 树结构使用举例

html部分

<ul id="cateTree"></ul>

 

js部分

 1 <script>
 2       layui.use(['form','layer','tree'], function(){
 3          $ = layui.jquery;
 4          var form = layui.form
 5          ,layer = layui.layer;
 6          
 7          layui.tree({
 8             elem: '#cateTree' //指定元素
 9             ,target: '_blank' //是否新选项卡打开(比如节点返回href才有效)
10             ,click: function(item){ //点击节点回调
11                //$("#cateName").val(item.name);
12                $("#parent_id").val(item.id);
13                //console.log(item);
14 
15             }
16             ,nodes: {$nodes}
17          });
18          
19           //监听提交
20           form.on('submit(add)', function(data){
21             //获取元素的值,发异步,把数据提交给php
22             var parent_id = $("#parent_id").val();
23             $.ajax
24             ({
25                 type:"post",
26                 url : "__CONTROLLER__/categoryAddSave",
27                 data : {
28                            name:data.field.name,
29                            show_order:data.field.show_order,
30                            parent_id:parent_id,
31                            type:data.field.type,
32                            alias_key:data.field.alias_key,
33                        },
34                 dataType:"json",    
35                 success:function(callBack)
36                 {
37                   if(callBack.state == 1)
38                   {
39                     layer.msg("增加成功", {icon: 1,time: 1000},function () {
40                         // 获得frame索引
41                         var index = parent.layer.getFrameIndex(window.name);
42                         //关闭当前frame
43                         parent.layer.close(index);
44                         parent.location.reload();
45                     });
46                   }
47                   else if(callBack.state == 2)
48                   {
49                     layer.msg("增加失败", {icon: 2,time: 1000},function () {
50                         // 获得frame索引
51                         var index = parent.layer.getFrameIndex(window.name);
52                         //关闭当前frame
53                         parent.layer.close(index);
54                     });
55                   }
56                 }
57             });
58             return false;
59           });
60   
61         });
62    </script>

 

PHP部分

控制器:

 1 public function categoryAddShow()
 2     {
 3       $categoryDB = M('category');
 4       $category = $categoryDB->select();
 5 
 6       $arrs = array();
 7       $cateNodes = json_encode(recur($arrs,$category));
 8 
 9       $this->assign('nodes',$cateNodes);
10         $this->display();
11     }

公共文件

 1 <?php
 2    function recur($arrs,$category,$parent_id=0)
 3    {
 4       foreach ($category as $k => $v)
 5       {
 6          if($v['parent_id'] == $parent_id)
 7          {
 8              $arr = array('name' => $v["name"],'id'=>$v['id'],'children'=>array());
 9              $arr['children'] = recur($arr["children"],$category,$v['id']);
10              array_push($arrs,$arr);
11          }
12       }
13       return $arrs;
14     }  
15 ?>

 

posted @ 2018-11-09 19:01  哟风  Views(12151)  Comments(0Edit  收藏  举报