省市区三级联动代码

本文介绍了如何使用Java实现省市区三级联动的功能。涉及到jsp页面的设计、jQuery的使用以及controller、mapper层的代码编写,包括Area、City和Province实体类的定义。
摘要由CSDN通过智能技术生成

sql语句在上一篇文章中,需要的童鞋可以自行领取。
首先是jsp页面:

省:<select name="provinceid" onchange="findCity(this.value)">
		<option>---请选择---</option>
	</select>
	<span id="but1"></span><span id="but2"></span>

上面是jsp,剩下的是jquery,这个可以自己放到js中,建一个类似工具类的js,需要直接调用就Ok

$(function(){
	$.post(
		"findProvince",{},function(obj){
			for(var i in obj){
				$("[name='provinceid']").append("<option value="+obj[i].provinceid+">"+obj[i].province+"</option>");
			}
		},"json"
	);
})
function findCity(provinceid){
	$.post(
		"findCity",{father:provinceid},function(obj){
			$("#but1").empty();
			$("#but1").append("市:<select name='cityid' onchange='findArea(this.value)'></select>");
			for ( var i in obj) {
				$("[name='cityid']").append("<option value="+obj[i].cityid+">"+obj[i].city+"</option>");
			}
		},"json"	
	);
}
function findArea(father){
	$.post(
		"findArea",{father:father},function(obj){
			$("#but2").empty();
			$("#but2").append("区:<select name='areaid'></select>");
			for ( var i in obj) {
				$("[name='areaid']").append("<option value="+obj[i].areaid+">"+obj[i].area+"</option>");
			}
		},"json"	
	);
	
}
JS省市区三级联动是一个非常常用的前端交互功能,实现方式有很多,以下是一个简单的实现方式: HTML代码: ```html <select id="province"> <option value="">请选择省份</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择地区</option> </select> ``` JS代码: ```javascript var areaData = [ { name: "北京市", city: [ { name: "市辖区", district: [ "东城区", "西城区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区", "密云区", "延庆区" ] } ] }, { name: "天津市", city: [ { name: "市辖区", district: [ "和平区", "河东区", "河西区", "南开区", "河北区", "红桥区", "东丽区", "西青区", "津南区", "北辰区", "武清区", "宝坻区", "滨海新区", "宁河区", "静海区", "蓟州区" ] } ] }, //省市数据省略... ]; var province = document.getElementById("province"); var city = document.getElementById("city"); var district = document.getElementById("district"); //初始化省份数据 for(var i=0;i<areaData.length;i++){ var option = document.createElement("option"); option.innerText = areaData[i].name; province.appendChild(option); } //选择省份后,初始化城市数据 province.onchange = function(){ var index = this.selectedIndex; city.innerHTML = "<option value=''>请选择城市</option>"; district.innerHTML = "<option value=''>请选择地区</option>"; if(index!=0){ var cityData = areaData[index-1].city; for(var i=0;i<cityData.length;i++){ var option = document.createElement("option"); option.innerText = cityData[i].name; city.appendChild(option); } } } //选择城市后,初始化地区数据 city.onchange = function(){ var pIndex = province.selectedIndex; var cIndex = this.selectedIndex; district.innerHTML = "<option value=''>请选择地区</option>"; if(pIndex!=0 && cIndex!=0){ var districtData = areaData[pIndex-1].city[cIndex-1].district; for(var i=0;i<districtData.length;i++){ var option = document.createElement("option"); option.innerText = districtData[i]; district.appendChild(option); } } } ``` 这段代码通过读取一个包含省市区数据的数组`areaData`,实现了省市区三级联动的功能。用户选择省份后,会根据所选省份的下标在`areaData`数组中找到对应的城市数据,再将城市数据添加到城市选择框中;用户选择城市后,会根据所选省份和城市的下标找到对应的地区数据,再将地区数据添加到地区选择框中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值