python ztree 异步加载

ztree 插件 

服务端: django

页面(index.html):包含内容如下:

1.导入css 

css/demo.css #这个不统一的样式标准,不是必须的

css/zTreeStyle/zTreeStyle.css #这个是必须的                                                                             
 
2.导入js
js/jquery-1.4.4.min.js  #这个是必须的
js/jquery.ztree.core.js #这个是必须的
3.ztree 初始化 id
<div class="content_wrap">
   <div class="zTreeDemoBackground">
      <ul id="treeDemo" class="ztree"></ul>
   </div>
</div>
#将这块代码放到 index.html 的body中
4.ztree setting设置
<SCRIPT type="text/javascript"> 
   var setting = {
      async: {
         enable: true,
         autoParam:["name"], #异步请求,点击节点时,自动提交name属性,服务端可以通过request.POST.get(name);注意,第一次初始化的时候,传的是空
         type: "post",
         url: "/ztree/dirlist/"
      }
      };


   $(document).ready(function(){
      $.fn.zTree.init($("#treeDemo"), setting);
   });
   
</SCRIPT>
服务端,也就是views.py中
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def dirlist(request):
    parent_name = request.POST.get('name', '')
    sub_name = parent_name + str('nl')
    zNodes = [{'name': sub_name, 'isParent': True}, {'name': sub_name, 'isParent': True}, {'name': sub_name, 'isParent':False}]
    return HttpResponse(json.dumps(zNodes))
这样就可以了哦!



 
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zTree可以通过异步加载数据来实现动态菜单。具体步骤如下: 1. 初始化zTree时,设置异步加载参数,包括异步请求的URL、请求方法、请求参数等。 2. 当需要加载动态数据时,调用zTree异步加载方法,传入请求参数。 3. 服务器接收到请求参数后,根据参数查询数据库或其他数据源,生成对应的数据,并返回给前端。 4. 前端接收到响应数据后,将数据转换成zTree所需的JSON格式,并调用zTree的更新节点数据方法,将数据更新到zTree中即可。 示例代码如下: ``` // 初始化zTree var setting = { async: { enable: true, // 开启异步加载 url: "dynamicMenu.php", // 异步请求的URL type: "POST", // 请求方法 autoParam: ["id"], // 请求参数 dataType: "json" // 响应数据类型 } }; var zTreeObj = $.fn.zTree.init($("#tree"), setting); // 加载动态数据 zTreeObj.reAsyncChildNodes(null, "refresh"); ``` 服务器端代码示例(PHP): ``` // 获取请求参数 $id = isset($_POST['id']) ? intval($_POST['id']) : 0; // 查询数据库获取节点数据 $nodes = array(); if ($id == 0) { // 查询根节点 $nodes[] = array( 'id' => 1, 'name' => '根节点', 'isParent' => true ); } else { // 查询子节点 $result = mysql_query("SELECT * FROM menu WHERE parent_id=$id"); while ($row = mysql_fetch_array($result)) { $nodes[] = array( 'id' => $row['id'], 'name' => $row['name'], 'isParent' => $row['has_child'] == 1 ); } } // 返回响应数据 echo json_encode($nodes); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值