zTree + iFrame优化查询体验

Posted bochao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zTree + iFrame优化查询体验相关的知识,希望对你有一定的参考价值。

         1. 当我们的查询只有文本框和下拉框并且可查询内容过多时,难以找到能最大化查询效率的分类,并且UI相对简单朴素。这时候我们可以用一张树表,清晰明了地展示数据的分类,并在iframe的页面中摆出查到的内容。效果如下, 当我们选中家具类时,表格中只会显示二级分类属于家具类的数据

         技术图片

         技术图片

 

         2. 那该怎么实现呢?首先页面分成两部分,左边是我们的主页,右边是iframe加载的另一个页面。主页中呢我们用到了zTree,所以我们要在第一行的libs里导入‘zTree‘这个库。首先我们要有数据,数据来源可以是数据库,也可以是js导入。比如这里我们用js:

 1 var zNodes =[
 2     id:1, pId:0, name:"办公用品", open:true, // 默认打开
 3     id:101, pId:1, name:"家具类",
 4     id:102, pId:1, name:"办公设备",
 5     id:103, pId:1, name:"家电类",
 6     id:10101, pId:101, name:"文件柜",
 7     id:10102, pId:101, name:"办公桌",            
 8     id:10103, pId:101, name:"办公椅",
 9     id:10104, pId:101, name:"沙发",
10     id:10105, pId:101, name:"会议桌",
11 ];    

 

         然后我们在页面的div标签中,给zTree分配一块区域:

         技术图片

 

         然后在<script>标签中,用js加载这棵树

1 $(document).ready(function()
2     var t = $("#tree");
3     t = $.fn.zTree.init(t, setting, zNodes);
4 );

 

         现在呢,你就能看到一棵树,当然这还远远不够

 

         3. 现在我们需要iframe里加载一个html页面于是我们再用一个div:

         技术图片

 

          src是已经具有基本查找功能的页面,即在输入框或者下拉框中输入后,已经能从数据库中获得条目并在表格中显示的网页。此时我们需要知道,当我们点击树表中的树时,我们所能捕获并利用的变量是啥,答案就是我们刚才自己写的json。我们看到在加载树的时候我们可以设置setting,所以我们在setting中得设置回调一个点击事件,把树节点的id赋值到iframe页面中查找的输入框内,代码如下:

 1 // 主页框架
 2 var win = $("#mainFrame")[0].contentWindow;
 3 // 树结构初始化加载
 4 var setting = view:selectedMulti:false,data:key:title:"title",simpleData:enable:true,
 5     callback:onClick:function(event, treeId, treeNode)
 6         tree.expandNode(treeNode);
 7         win.$(‘button[type=reset]‘).click();
 8         if (treeNode.id.length == 1) 
 9             win.$(‘#classId‘).val(treeNode.id);
10          else if (treeNode.id.length == 3) 
11             win.$(‘#sortId‘).val(treeNode.id);
12          else if (treeNode.id.length == 5) 
13             win.$(‘#categoryId‘).val(treeNode.id);
14         
15         win.page();
16     
17 

         这里#后面是我的三级分类,根据id的长度来判断父子节点。在iframe中我把这三个框给隐藏了,不然显得很冗余

 

         4. 最后这里我再贴上我自己从数据库抓取树表,然后ajax异步提交的代码

         技术图片

以上是关于zTree + iFrame优化查询体验的主要内容,如果未能解决你的问题,请参考以下文章

JQuery树形插件zTree+iFrame实现个性网址簿工具

Mysql之数据库优化

MySQL优化

MySQL 优化目的

Mysql优化

MySQL数据库优化