/** * 省份 */ public class Province { private int pid; private String pname; public Province() { } public Province(int pid, String pname) { this.pid = pid; this.pname = pname; } // getter and setter }
/** * 城市 */ public class City { private int cid; private String cname; public City() { } public City(int cid, String cname) { this.cid = cid; this.cname = cname; } // getter and setter }
/** * 区县 */ public class District { private int did; private String dname; public District() { } public District(int did, String dname) { this.did = did; this.dname = dname; } //getter and setter }
public class LinkService { /** * 取得全部省份 */ public List<Province> getAllProvinces() { List<Province> provinces = new ArrayList<>(); provinces.add(new Province(1, "吉林")); provinces.add(new Province(2, "辽宁")); return provinces; } /** * 根据省份Id取得城市 * @param provinceId * @return */ public List<City> getCityByProvinceId(int provinceId) { List<City> cities = new ArrayList<>(); if (1 == provinceId) { cities.add(new City(1, "长春")); cities.add(new City(2, "四平")); } else if (2 == provinceId) { cities.add(new City(3, "大连")); cities.add(new City(4, "鞍山")); } return cities; } /** * 根据城市Id取得区域 * @param citId * @return */ public List<District> getDistrictByCityId(int cityId) { List<District> districts = new ArrayList<>(); if (1 == cityId) { districts.add(new District(1, "九台")); districts.add(new District(2, "农安")); } else if (2 == cityId) { districts.add(new District(3, "梨树")); districts.add(new District(4, "公主岭")); }else if (3 == cityId) { districts.add(new District(3, "沙河口")); districts.add(new District(4, "甘井子")); }else if (4 == cityId) { districts.add(new District(3, "铁东")); districts.add(new District(4, "立山")); } return districts; } }
@WebServlet("/linkServlet")
public class LinkServlet extends HttpServlet {
private static final long serialVersionUID = -5853753788149746000L;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");
if (null == method || "".equals(method)) {
listProvince(request, response);
} else if ("listCity".equals(method)) {
listCity(request, response);
} else if ("listDistrict".equals(method)) {
listDistrict(request, response);
}
}
/** 返回省份 */
private void listProvince(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
LinkService linkService = new LinkService();
request.setAttribute("provinces", linkService.getAllProvinces());
request.getRequestDispatcher("/WEB-INF/jsp/listProvince.jsp").forward(request, response);
}
/** 返回城市 */
private void listCity(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String provinceIdStr = request.getParameter("provinceId");
if (null != provinceIdStr && !"".equals(provinceIdStr)) {
int provinceId = Integer.parseInt(provinceIdStr);
LinkService linkService = new LinkService();
List<City> cities = linkService.getCityByProvinceId(provinceId);
String result = new Gson().toJson(cities); //这是使用了GSON,来返回JSON对象
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(result);
}
}
/** 返回区县 */
private void listDistrict(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String cityIdStr = request.getParameter("cityId");
if (null != cityIdStr && !"".equals(cityIdStr)) {
int cityId = Integer.parseInt(cityIdStr);
LinkService linkService = new LinkService();
List<District> districts = linkService.getDistrictByCityId(cityId);
String result = new Gson().toJson(districts); //这是使用了GSON,来返回JSON对象
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(result);
}
}
}
<script type="text/javascript" src="js/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(function(){
//加载城市
$("#province").change(function(){
var url = "linkServlet?method=listCity&now="+new Date();
var param = {"provinceId":$.trim($(this).val())};
$.post(url,param,function(data,status){
if(status=="success"){
$("#city option[value!='']").remove(); //先清空
var obj= $.parseJSON(data); // 注意,不然这写,会报错TypeError: invalid 'in' operand obj。
$.each(obj,function(index,item){
var option = $("<option/>");
option.attr("value",item.cid);
option.text(item.cname);
$("#city").append(option);
});
}else{
alert("数据加载失败");
}
});
});
//加载区县
$("#city").change(function(){
var url = "linkServlet?method=listDistrict&now="+new Date();
var param = {"cityId":$.trim($(this).val())};
$.post(url,param,function(data,status){
if(status=="success"){
$("#district option[value!='']").remove(); //先清空
var obj = $.parseJSON(data);
$.each(obj,function(index,item){
var option = $("<option/>");
option.attr("value",item.did);
option.text(item.dname);
$("#district").append(option);
});
}else{
alert("数据加载失败");
}
});
});
});
</script>
</head>
<body>
<!-- 省份 -->
<select name="province" id="province">
<option value="">请选择</option>
<c:forEach var="p" items="${provinces}">
<option value="${p.pid}">${p.pname}</option>
</c:forEach>
</select>
<!-- 城市 -->
<select name="city" id="city">
<option value="">请选择</option>
</select>
<!-- 区县 -->
<select name="district" id="district">
<option value="">请选择</option>
</select>
</body>
相关推荐
提供目前中国全部行政区域的省(市/自治区)、市(区/自治州)、区(县/市)三级联动最新数据,可以用于各类应用开发。2019年10月31日,我公司(www.ebaitian.cn)决定将中国最新的行政区划数据向社会公众共享,以...
微信小程序-省市县三级联动,带有自定义地区码(源代码+截图)微信小程序-省市县三级联动,带有自定义地区码(源代码+截图)微信小程序-省市县三级联动,带有自定义地区码(源代码+截图)微信小程序-省市县三级联动,带有...
android 列表三级联动android 列表三级联动android 列表三级联动android 列表三级联动android 列表三级联动android 列表三级联动android 列表三级联动
三级联动
asp三级联动asp三级联动asp三级联动asp三级联动,非常简单的,网上一大把.....CSDN帐号分数不够了...所以上传...
Ajax JavaWeb JS 三级联动 Ajax JavaWeb JS 三级联动 Ajax JavaWeb JS 三级联动
该项目为一个整合hibernate与struts,利用json对象存放临时数据库数据,连接数据的三级联动;改项目使用ajax传递请求连接和参数;数据库结果为三表级联,三表之间依次都是多对一的关系;其中代码核心代码都附有详细...
三级联动是你在做网站是注册必不可少的部分。java编写的三级联动性能稳定,简单易用
下拉框三级联动效果html代码,包括省,市,区,具体效果看代码实现
省市区 三级联动demo js html 数据
省市区三级联动 , JavaScript 省市区三级联动 json文件,JavaScript 省市区三级联动 json文件
excel vba 三级联动可读写 excel vba 三级联动可读写 excel vba 三级联动可读写 excel vba 三级联动可读写
世界级地区三级联动数据库sql,包括建表语句等支持直接导入MySql
asp二级联动下拉框,三级联动下拉框,asp二级联动下拉框,三级联动下拉框, 可能传错了 sorry
省市区三级联动数据库 省市区三级联动数据库,包含地区的区号、邮政编码以及区域的坐标位置信息。三级联动
国家省市三级联动,javascript代码编写,简单容易调用!
本来是想免费的但是最低就是一分,相信大家也不在乎这一分,里面是一个中国省市县三级联动的SQL语句,字段包括 id , name , parentid ,使用方法大概介绍下,首先省的parentid 都为0,省那一栏查询所有parentid为0的...
js省市地区三级联动
最全2022年商标类目三级联动,包含一级45大类,二级群组,三级商品名。 表iceci.sql是一级类目(注解信息,说明) 表iceci_group.sql是二级相关群组 表iceci_allinfo.sql是三级商品相关名称。 说明:一级和二级对应...
jQuery世界城市三级联动下拉选择代码 jQuery世界城市三级联动下拉选择代码 jQuery世界城市三级联动下拉选择代码