`
gegewu0825
  • 浏览: 47444 次
社区版块
存档分类
最新评论

ajax+json+ztree 最终版

 
阅读更多

最终效果图


环境:ztree v3.3

 

ztree 简单数据类型 支持ajax返回的json字符串 不需要重新设计json对象

 

后台数据是分层次存入redis缓存的 如下所示

 


 

前端js代码:

 

 

 

var setting = {
		//ajax 加载数据 ztree可直接使用返回的json字符串
		async: {
			enable: true,
			url:"<?php echo elgg_add_action_tokens_to_url(elgg_get_site_url().'action/ztree/getdata')?>",
			autoParam:["id"],
			//otherParam:{"lv"},
			//dataFilter: filter
		},		
		check: {
			enable: true,
			chkboxType: {"Y":"ps", "N":"ps"}
		},
		view: {
			dblClickExpand: false
		},
		data: {
			simpleData: {
				enable: true
			}
		},
		callback: {
			beforeClick: beforeClick,
			onCheck: onCheck
		}
	};
	function beforeClick(treeId, treeNode) {
		var zTree = $.fn.zTree.getZTreeObj(treeId);
		zTree.checkNode(treeNode, !treeNode.checked, null, true);
		return false;
	}
	
	function onCheck(e, treeId, treeNode) {
		var zTree = $.fn.zTree.getZTreeObj(treeId),
		nodes = zTree.getCheckedNodes(true),
		v = "";
		//返回checkbox值
		for (var i=0, l=nodes.length; i<l; i++) {
			if(!nodes[i].isParent){
				v += nodes[i].name + ",";//多值用,隔开
			}
		}
		if (v.length > 0 ) v = v.substring(0, v.length-1);
		var cityObj = $("#input_"+treeId);
		cityObj.attr("value", v);
	}
	function showMenu(v) {
		var cityObj = $("#input_"+v+"_a");
		var cityOffset = $("#input_"+v+"_a").position();
		$("#menuContent ul" ).hide();
		$("#"+v).show();
		$("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");

		$("body").bind("mousedown", onBodyDown);
	}
	function hideMenu() {
		$("#menuContent").fadeOut("fast");
		$("body").unbind("mousedown", onBodyDown);
	}
	function onBodyDown(event) {
		if (!(event.target.id == "menuBtn" || event.target.id == "citySel" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
			hideMenu();
		}
	}
	//过滤接受的json数据
	function filter(treeId, parentNode, childNodes) {
		if (!childNodes) return null;
		//alert(childNodes[0].id);
		return childNodes;
	}
	function ztree_init(v){
		switch(v){
			case 'edu_type_list':
				var treeNodes=[{id:'A',pId:'0',name:'适用教育类型', isParent:true}];
				break;
			case 'curriculum_list' :
				var treeNodes=[{id:'B',pId:'0',name:'课程标准', isParent:true}];
				break;
			case 'format_list' :
				var treeNodes=[{id:'C',pId:'0',name:'资源格式', isParent:true}];
				break;
			case 'grade_list' :
				var treeNodes=[{id:'D',pId:'0',name:'适用年龄段', isParent:true}];
				break;
			case 'learner_list' :
				var treeNodes=[{id:'E',pId:'0',name:'适用学习者', isParent:true}];	
				break;
			case 'textbook_list':
				var treeNodes=[{id:'F',pId:'0',name:'教材信息', isParent:true}];
				break;			
			case 'topic_list':
				var treeNodes=[{id:'G',pId:'0',name:'所属专题', isParent:true}];
				break;	
			case 'subject_list' :
				var treeNodes=[{id:'H',pId:'0',name:'所属学科', isParent:true}];
				break;	
			case 'type_list':
				var treeNodes=[{id:'I',pId:'0',name:'资源类型', isParent:true}];
				break;	

		}
		//初始化ztree 以及弹窗
		$.fn.zTree.init($("#"+v), setting, treeNodes);
		showMenu(v)	

	}

 
 后台返回json代码:

 

 

 

 

 

<?php
/**
 *根据id 返回 资源分类 
 */

$id=get_input('id');
//获取资源分类
$type=substr($id, 0,1);
switch ($type){
	case 'A':
		$key='typeselect:edu_type_list:'.$id;
		break;
	case 'B':
		$key='typeselect:curriculum_list:'.$id;
		break;
	case 'C':
		$key='typeselect:format_list:'.$id;
		break;
	case 'D':
		$key='typeselect:grade_list:'.$id;
		break;
	case 'E':
		$key='typeselect:learner_list:'.$id;
		break;
	case 'F':
		$key='typeselect:textbook_list:'.$id;
		break;
	case 'G':
		$key='typeselect:topic_list:'.$id;
		break;
	case 'H':
		$key='typeselect:subject_list:'.$id;
		break;
	case 'I':
		$key='typeselect:type_list:'.$id;
		break;							
	
}
//返回 json数据
$info=redis_get_cache_content($key);
echo $info;
exit();
  • 大小: 20.9 KB
  • 大小: 15.8 KB
分享到:
评论

相关推荐

    ZTree+Struts2+ajax+json实现checkbox权限树

    【标题】"ZTree+Struts2+ajax+json实现checkbox权限树"涉及的技术栈主要集中在前端的ZTree,后端的Struts2框架,以及数据交互中的Ajax和JSON。这个项目的核心目标是构建一个可复选的权限树形结构,用户通过勾选节点...

    SSH+ztree+ajax+json

    在SSH+ztree+ajax+json项目中,Ajax可能被用于异步地从服务器获取数据(例如JSON格式),然后动态地更新ZTree的节点,提供更流畅的用户体验。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于...

    ajax+zTree 文件树

    3. **创建节点**:zTree的节点数据通常以JSON格式存储。例如: ```javascript var nodes = [ { id:1, pId:0, name:"父节点1"}, { id:11, pId:1, name:"子节点1-1"}, { id:12, pId:1, name:"子节点1-2"} ]; ``...

    EF+MVC3+zTree动态加载

    对于动态加载,你需要创建一个处理AJAX请求的控制器方法,该方法使用EF查询数据库,获取树形结构所需的数据,然后以JSON格式返回。 - **视图(View)**:视图是用户看到和交互的部分。在zTree的场景中,你需要创建一...

    bootstrap+ztree+table

    Bootstrap、ZTree 和 Table 是三个在 Web 开发中常用的组件,它们各自有着独特的作用,但也可以...在实际开发中,还可以根据需求进一步扩展,如集成 AJAX 动态加载数据、增加搜索过滤功能等,实现更复杂的业务逻辑。

    dt+ztree+ajax的DEMO

    【dt+ztree+ajax的DEMO】是一个整合了Datatables、ZTree和Ajax技术的示例项目,旨在实现用户在ZTree中进行交互时,通过Ajax异步加载数据到Datatables表格中的功能。这个DEMO展示了如何将这三者有效地结合,以提供一...

    Ztree操作 AJAX

    在本案例中,我们使用AJAX从服务器获取JSON格式的服务分类数据,并将其渲染到Ztree上。 ### 结合Ztree与AJAX 为了实现Ztree与AJAX的结合,首先需要配置Ztree的设置对象`setting`,然后通过AJAX请求获取数据并初始...

    ajax获取嵌套JSON,树形控件显示

    这个“ajax获取嵌套JSON,树形控件显示”的示例主要涉及如何通过Ajax获取嵌套的JSON数据,并将其适配到ZTree的格式,以便在页面上以树形结构展示。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻...

    结合ztree的下拉框树形结构数据多选,单选

    例如,使用JSON格式的固定数据初始化zTree可能如下: ```javascript var setting = { check: { enable: true, chkStyle: "checkbox", radioType: "all" // 或者 "level" for single selection }, data: { ...

    Ztree后台拼接Json

    这可能通过Ajax请求实现,如jQuery的`$.ajax()`或`$.getJSON()`。响应数据需要设置正确的MIME类型(如`application/json`),以确保浏览器能正确解析。 5. 前端处理:前端接收到JSON数据后,调用ZTree的初始化方法...

    ajax+asp修改新增都在一个页上小小实例

    在这个“ajax+asp修改新增都在一个页上小小实例”中,我们主要探讨的是如何结合Ajax技术和ASP(Active Server Pages)来实现动态网页交互,让用户在同一个页面上完成数据的添加和修改,无需频繁地刷新页面,提升用户...

    前端web select 多层级选择。利用 ztree.js 实现下拉框的多选和单选demo.有兴趣的可以了解一下。

    在创建 zTree 时,我们需要提供 JSON 数据,这些数据定义了各个节点的信息,包括父节点、子节点以及它们的层级关系。例如: ```json [ { "id": "1", "pId": "0", "name": "父节点1", "children": [ { "id": ...

    spring+srpingmvc+hibernate实现动态ztree生成树状图效果

    前端负责页面渲染和ZTree的初始化,通过Ajax获取后端动态生成的树节点数据;后端则利用SpringMVC和Hibernate处理数据查询和转换,提供给前端展示。整个过程涉及到了前端UI、JavaScript交互、后端服务和数据库操作等...

    Django引用ztree实现数据库表导入树状目录

    ZTree需要的数据结构通常是一个嵌套的JSON数组,表示树的层级关系。 5. 视图(View)与模板(Template): 在Django中,视图函数负责处理HTTP请求并返回响应。对于ZTree,这个响应可能是一个包含树节点数据的JSON字符串...

    ztree实现AJAX树状结构-JAVA实现

    在Java后端,我们需要创建一个处理AJAX请求的控制器,该控制器接收前端发送的请求,查询数据库获取树形结构的数据,然后以ZTree要求的JSON格式返回。例如,使用Spring MVC框架,我们可以这样做: ```java import ...

    Jquery+BootStrap+ztree+jqgrid所需js和css文件

    它支持多种数据源格式,如JSON、XML,提供了丰富的配置选项和事件机制,使得在Web应用中展示层级关系数据变得简单。ztree还支持节点的增删改查、拖拽操作、多选功能,广泛应用于目录结构展示、文件管理、权限控制等...

    struts2.0+ztree+jquery动态生成树结构

    在提供的两个文件"struts+ztree+jquery动态生成树结构1.txt"和"struts+ztree+jquery动态生成树结构2.txt"中,很可能是分别展示了这两种方法的具体实现细节,包括Action的代码示例、前端的jQuery代码和ZTree的配置。...

    ztree带层级穿梭框

    ZTree支持JSON数据格式,方便与后端进行数据交互。 2. **层级结构:** ZTree的层级结构体现在节点之间的父子关系。父节点可以有多个子节点,子节点也可以是其他节点的父节点,形成多级嵌套。这种结构在表示组织...

    ztree+struts2+hibernate项目

    【标题】"ztree+struts2+hibernate项目"是一个综合性的Web应用程序示例,它结合了多个核心技术,包括ztree、Struts2、Hibernate以及jQuery,展现了如何在实际开发中有效地整合这些工具。这个项目的核心在于利用ztree...

    zTree zTree zTree

    2. 准备数据:根据需求构造JSON数据,通常存储在服务器端,通过Ajax请求获取。 3. 初始化配置:设置zTree的配置项,如显示样式、节点操作行为等。 4. 创建节点:将JSON数据传递给zTree,通过$.fn.zTree.init()方法...

Global site tag (gtag.js) - Google Analytics