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