省市区三级级联实现

项目结构:

index:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<title>Insert title here</title>
		<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
		<script type="text/javascript" src="js/json2.js"></script>
		<script type="text/javascript">
		$(function(){
				var obj={
					url:"./CascadeServlet",
					dataType: "text",
					success:function(data){
						 data = JSON.parse(data); 
						 var options = "<option value=\"\">---请选择---</option>";
						 for(var i=0;i<data.length;i++){
							options = options +"<option value='"+data[i].code+"'>"+data[i].name+"</option>";
						 }   
						 $("#province").empty();
						 $("#province").append(options);
					}
				};
				$.ajax(obj);
			
		});
			function provinceChange(){
				var values = $("#province").val();
				if(values==""){
					$("#city").empty();
					$("#county").empty();
					var options = "<option value=\"\">---请选择---</option>";
					$("#city").append(options);
					$("#county").append(options);
					return;
				}
				var obj={
						url:"./CascadeServlet?parentCode="+values,
						dataType: "text",
						success:function(data){
							 data = JSON.parse(data); 
							 var options = "<option value=\"\">---请选择---</option>";
							 for(var i=0;i<data.length;i++){
								options = options +"<option value='"+data[i].code+"'>"+data[i].name+"</option>";
							 }   
							 $("#city").empty();
							 $("#city").append(options);
						}
					};
					$.ajax(obj);
			}
			function cityChange(){
				var values = $("#city").val();
				if(values==""){
					$("#county").empty();
					var options = "<option value=\"\">---请选择---</option>";
					$("#county").append(options);
					return;
				}
				var obj={
						url:"./CascadeServlet?parentCode="+values,
						dataType: "text",
						success:function(data){
							 data = JSON.parse(data); 
							 var options = "<option value=\"\">---请选择---</option>";
							 for(var i=0;i<data.length;i++){
								options = options +"<option value='"+data[i].code+"'>"+data[i].name+"</option>";
							 }   
							 $("#county").empty();
							 $("#county").append(options);
						}
					};
					$.ajax(obj);
			}
		</script>
	</head>
	<body>
		<select id="province" onchange="provinceChange()">
			<option value="">---请选择---</option>
		</select>
		<select id="city" onchange="cityChange()">
			<option value="">---请选择---</option>
		</select>
		<select id="county">
			<option value="">---请选择---</option>
		</select>
	</body>
</html>

CascadeServlet:

package com.jd.area.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;
import com.jd.area.service.AreaService;
import com.jd.area.vo.Area;


public class CascadeServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/plaint; charset=UTF-8");
		String parentCode = request.getParameter("parentCode");
		AreaService areaService = new AreaService();
		List<Area> LIST = areaService.areaService(parentCode);
		String json = new Gson().toJson(LIST); //json 一种数据存储的结构,以字符串为数据类型,该字符串返回到浏览器端后变成javascript对象
		PrintWriter out = response.getWriter();
		out.write(json);
		out.flush();
		out.close();
	}

}

AreaService:

package com.jd.area.service;

import java.util.List;

import com.jd.area.dao.AreaDao;
import com.jd.area.imp.IAreaService;
import com.jd.area.vo.Area;

public class AreaService implements IAreaService {

	public List<Area> areaService(String parentCode) {
		if(parentCode==null) {
			parentCode="";
		}
		return new AreaDao().areaDao(parentCode);
	}

}

AreaDao:

package com.jd.area.dao;


import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.jd.area.imp.IAreaDao;
import com.jd.area.vo.Area;
import com.jd.tool.db.DBLink;
import com.jd.tool.db.IRowMapper;

public class AreaDao implements IAreaDao{

	public List<Area> areaDao(String parentCode) {
		String sql = "select * from area where parent_code ='"+parentCode+"'";
		final List <Area> LIST = new ArrayList<Area>();
		DBLink dblink = new DBLink();
		dblink.select(sql, new IRowMapper() {
			public void rowMapper(ResultSet rs) {
				try {
					while(rs.next()) {
						String name = rs.getString("name");
						String code = rs.getString("code");
						String parentCode = rs.getString("parent_code");
						String id = rs.getString("id");
						Area area = new Area(name,code,parentCode,id);
						LIST.add(area);
					}
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		});
		return LIST;
	}
	
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值