一、代码
1、后端php代码
class suite { /* * 调用模板 * param int $projecid 所属项目id */ public function suiteList($projecId){ $projecId = 670855; $this->smarty->assign('projecId',$projecId); $this->smarty->display($this->smarty->tlTemplateCfg->template_dir .'suiteList.tpl'); } /* * 模板上ajax请求获取列表 */ public function suiteListAjax(){ $projecId = $_REQUEST['projecId']; $parentId = isset($_REQUEST['id'])?$_REQUEST['id']:0; $opt = array('node_type_id'=>4); $rootSuite = $this->tree->rootNodeByProject($parentId,$projecId,$opt); foreach ($rootSuite as $key=>$value){ $sonNodeLength = $this->tree->isParent($value['id']); if($sonNodeLength>0){ $rootSuite[$key]['isParent'] = 'true'; }else{ $rootSuite[$key]['isParent'] = 'false'; } } echo json_encode($rootSuite); } }
2、前端代码
<script type="text/javascript" src="{$basehref}third_party/zTree_v3/js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="{$basehref}third_party/zTree_v3/js/jquery.ztree.core.js"></script> <div class="panel"> <div class="panel-heading"> <div class="panel-title">树结构菜单管理</div> </div> <div class="panel-body"> <ul id='modulesTree' data-name='tree-case' class="tree ztree"> </ul> </div> </div> <SCRIPT type="text/javascript"> var projecId = {$projecId} //后端php传递的项目id var setting = { view: { selectedMulti: false }, //异步配置 async: { enable: true, //是否开启 type: "post", //ajax数据提交格式 url:"casesIndex.php?c=suite&f=suiteListAjax", //后台地址 autoParam:["id", "name=n", "level=lv"], otherParam:{"projecId":projecId}, dataFilter: filter }, callback: { } }; function filter(treeId, parentNode, childNodes) { if (!childNodes) return null; for (var i=0, l=childNodes.length; i<l; i++) { childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.'); } return childNodes; } //初始化节点 $(document).ready(function(){ $.fn.zTree.init($("#modulesTree"), setting); }); </SCRIPT>
二、说明
ztree是基于jQuery的,所以使用之前要先引入jQuery库,最基础的使用是引入如下3个文件:
zTree_v3/css/zTreeStyle/zTreeStyle.css (自带样式)
zTree_v3/js/jquery-1.4.4.min.js(ztree官方提供的和当前版本对应的jQuery库)
zTree_v3/js/jquery.ztree.core.js(ztree 核心库)
前端调用执行
1、$.fn.zTree.init初始化节点
2、filter(treeId, parentNode, childNodes) 把php返回的json格式数据转化为数组格式
转载请注明:谷谷点程序 » php+ztree 实现异步加载树结构菜单