java 异步实现省市联动

Posted lkjhgfdsa123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 异步实现省市联动相关的知识,希望对你有一定的参考价值。

1.

省份:<select id="provinceSelect"></select>
城市:<select id="citySelect"></select>

 2.get,post请求都可

	public String findProvinces(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		List<Province> list=dao.findProvinces();
		String jsonString=JSONArray.fromObject(list).toString();
		response.getWriter().write(jsonString);
		return null;
		
	}
	public String findCitysbyPid(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String pId=request.getParameter("pId");
		int provinceId=Integer.parseInt(pId);
		List<City> list=dao.findCitysByPId(provinceId);
		String jsonString=JSONArray.fromObject(list).toString();
		response.getWriter().write(jsonString);
		return null;
	}

  3.

  function initProvinceSelect()
  {	 
	  $.getJSON("<c:url value=‘ProvinceCityServlet‘/>",{"method":"findProvinces"},function(data){
//另一种遍历方式  还有each方式遍历 但在这里不常用   常用在遍历jquery元素集合上
	for(var i = 0; i < data.length; i++){
	  $("#provinceSelect").append("<option value=‘"+data[i].pid+"‘>"+data[i].name+"</option>")
	}
		  bindCitySelectChange();//注意绑定事件的顺序  总是放在依赖控件加载完后面 因为是异步加载
		  
		  //初始化   很重要 一般是想不到的
		  $("#provinceSelect").change();
	  });
  }

  4.

  function bindCitySelectChange()
  {
	  $("#provinceSelect").change(function(){
		  var pId=$(this).val();//获取select选中项  很重要
		  $("#citySelect").empty();
		  //post get都行
		  $.post("<c:url value=‘ProvinceCityServlet‘/>",{"method":"findCitysbyPid","pId":pId},function(data){
			  for(var key in data)
			  {
			  		$("#citySelect").append("<option>"+data[key].name+"</option>");
			  }
			  
		  },"json");
	  });
  }

  

以上是关于java 异步实现省市联动的主要内容,如果未能解决你的问题,请参考以下文章

JQuery实现AJAX异步请求实现省市联动(数据传输格式为xml)

JQuery实现AJAX异步请求实现省市联动(数据传输格式为json)

2017-6-7AJAX异步刷新 省市区 三级联动

c# 做省市县联动

javaweb--json--ajax--mysql实现省市区三级联动(附三级联动数据库)

022-异步加载省市区联动