三级联动

三级联动,举例说明:我们在注册网站的时候选择省市县,这就是三级联动的效果,联动效果的特点为一级节点决定二级节点,二级节点决定三级节点,以此类推。这就说明当前节点的id是下一级节点的父id(根据id查询),每次查询的参数均为id,只是对应的子节点不同。
分析完成后,我们来撸一下代码:
1.首先数据库得有张表吧,这张表里包含了各级节点的信息,id啊,什么的,来几张图看看。
在这里插入图片描述
在这里插入图片描述
2.表准备完毕,前端页面撸一下,做几个测试代码,这个很简单,我直接上代码就行了,效果大家脑补。最后一级为县级,所以县级不用调用方法。

<body>
	省:
	<select name="sheng" id="shengid" onchange="method()"></select> 
	市:
	<select name="shi" id="shiid" onchange="method2()"></select>
	 县:
	<select name="xian" id="xianid"></select>
</body>

3.代码实现
3.1首先发一个Ajax请求到后台,参数为0,0代表所有的一级节点,就是省级单位。返回装着所有省级单位对象的集合list。

$(function(){
	$.ajaxSettings.async = false; 
	//发送
	$.get("AreaServlet",{parentid:0},function(result){
		//获取下拉框对象
		var shengobj = $("#shengid");
		//JSON对象
		var allsheng = JSON.parse(result);
		for(var i = 0;i<allsheng.length;i++){
			//获取内容
			var shengdeid = allsheng[i].areaid;
			var shengname=allsheng[i].areaname;
			//拼接
			var biaoqian = $("<option value="+shengdeid+">"+shengname+"</option>");
			shengobj.append(biaoqian);
			/* alert(allsheng[i].areaid); 为省份号码*/
		}
		//调用查询的市级方法,这样市级会根据省级的变化而变化,产生联动效果。
		method();
	});
});

3.2 省级单位的id已经获取到,前面说过,省级id为市级的父id

function method(){
    //获得省id
	var shengid=$("#shengid").val();
	/* alert(shengid); */
	$.get("AreaServlet",{parentid:shengid},function(result){
	
		//获取市的下拉框对象
		var shiobj=$("#shiid");
		//清除子节点,否则上次查询的数据仍存在。
		shiobj.empty();
		//接收JSON返回的结果
		var list = JSON.parse(result);
		for(var i = 0;i<list.length;i++){
			//获取值
			var shiid= list[i].areaid;
			var shiname= list[i].areaname;
			//创建节点
			var jiedian=$("<option value="+shiid+">"+shiname+"</option>");
			shiobj.append(jiedian);
		}
		//调用县级方法
		method2();
		
	});
}

3.3 显示县级

function method2(){
	var shiid=$("#shiid").val();
	/* alert(shengid); */
	$.get("AreaServlet",{parentid:shiid},function(result){
	
		//获取县的下拉框对象
		var xianobj=$("#xianid");
		//清除子节点
		xianobj.empty();
		//接收JSON返回的结果
		var list = JSON.parse(result);
		for(var i = 0;i<list.length;i++){
			//获取值
			var xianid= list[i].areaid;
			var xianname= list[i].areaname;
			//创建节点
			var jiedian=$("<option value="+xianid+">"+xianname+"</option>");
			xianobj.append(jiedian);
		}
		
	});
}

县级下还有节点以此类推即可。这样便产生了联动效果。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值