ajax三级联动

例如选择地区

使用ajax异步刷新
在中使用onchange事件
在onchange事件中定义代码:

function guoJia() {
		var gid = document.getElementById("gj").value;//根据第一级的id获取对应的value值
		/* 创建ajax */
		var ajax = new XMLHttpRequest();
		/* 打开ajax */
		ajax.open("请求方式", "地址+gid +标识符+时间戳", true);
		/* 回调函数 */
		ajax.onreadystatechange=function(){
			if(ajax.readyState==4&&ajax.status==200){
				var data = ajax.responseText; /* 响应数据 */
				//这次接的是对象集合,所以需要转换和循环
				var objs = eval("("+data+")");
				/* 把数据写在<select>标签中 */
				/* 先获取标签 */
				var citySel = document.getElementById("city");//根据第二级的id获取标签
				citySel.innerHTML="";	/* 清空之前查询的城市的值 */
				/* 开始循环 */
				for(var i = 0;i<objs.length;i++){
					var obj = objs[i];
					var cid=obj.cid;
					var cname = obj.cname;
					// 做成 一个一个的option 添加到 select 标签中
					// 第一个参数值 就是标签体  第二个参数值 就是 value 的属性值
					var option = new Option(cname, cid); //这里是个易错点,注意别填错了
					citySel.options.add(option);
				}
				chengShi();//这一步是为了在选择第一级时第三极也随着变化 不会造成第三级地址与第一和第二级地址不对应
			}
		};
		/* 发送 */
		ajax.send(null);
	}
function chengShi() {
		var cid = document.getElementById("city").value;
		/* 创建ajax */
		var ajax = new XMLHttpRequest();
		/* 打开ajax */
		ajax.open("GET", "OneServlet.do?flag=getQuByCid&cid="+cid+"&time="+new Date().getTime(), true);
		/* 回调函数 */
		ajax.onreadystatechange=function(){
			if(ajax.readyState==4 && ajax.status==200){
				var data = ajax.responseText; /* 响应数据 */
				/* alert(data); */
				var objs = eval("("+data+")");
				/* 把数据写在<select>标签中 */
				/* 先获取标签 */
				var quSel = document.getElementById("qu");
				quSel.innerHTML="";	/* 清空之前查询的城市 */
				/* 开始循环 */
				for(var i = 0;i<objs.length;i++){
					var obj = objs[i];
					var qid=obj.qid;
					var qname = obj.qname;
					// 做成 一个一个的option 添加到 select 标签中
					// 第一个参数值 就是标签体  第二个参数值 就是 value 的属性值
					var option = new Option(qname, qid);
					quSel.options.add(option);
				}
			}
		};
		/* 发送 */
		ajax.send(null);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lemon20120331

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值