天天看點

java ajax三級關聯_AJAX省市區三級關聯下拉清單實作 JAVA開發

轉載自:http://blog.sina.com.cn/s/blog_a48af8c001011lx1.html

例子--District Picker

http://fengyuanchen.github.io/distpicker/

此小程式的功能主要是采用異步請求方式從資料庫中調取省市區資訊顯示到下拉清單:

代碼如下:

建立資料庫中的代碼和一些配置檔案資訊就省略了,主要有JavaScript中的代碼為:

$(document).ready(function(){

$.get("getProvince.do", function(result){

$("#showp").html(result);

});

})

var xmlhttp;

function mysend(str){

$(document).ready(function(){

$("#show2").html("");

})

var show = document.getElementByIdx_x_x_x_x_x("show");

show.innerHTML = "";

var province = document.getElementByIdx_x_x_x_x_x("province").value;

if(province!=0){

if(window.XMLHttpRequest){

xmlhttp = new XMLHttpRequest();

}else{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function(){

if(xmlhttp.readyState==4 && xmlhttp.status==200){

show.innerHTML = xmlhttp.responseText;

}

}

var ss = encodeURIComponent(str);

xmlhttp.open("GET","getCity.do?provinceid="+ss,true);

xmlhttp.send(null);

}

}

function myarea(str){

if(window.XMLHttpRequest){

xmlhttp = new XMLHttpRequest();

}else{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function(){

if(xmlhttp.readyState==4 && xmlhttp.status==200){

var show2 = document.getElementByIdx_x_x_x_x_x("show2");

show2.innerHTML = xmlhttp.responseText;

}

}

var ss = encodeURIComponent(str);

xmlhttp.open("GET","getArea.do?cityid="+ss,true);

xmlhttp.send(null);

}

html頁面中的代碼為:

所在地

action中的代碼為:

package mobi.zhangsheng.jiejia.action;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.List;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import org.springframework.stereotype.Controller;

import mobi.zhangsheng.jiejia.domain.Areas;

import mobi.zhangsheng.jiejia.service.AgentsService;

import mobi.zhangsheng.jiejia.service.AreasService;

@Controller

public class ProvinceAction {

private int provinceid;

private int cityid;

@Resource

private AreasService as;

@Resource

private AgentsService ags;

public int getProvinceid() {

return provinceid;

}

public void setProvinceid(int provinceid) {

this.provinceid = provinceid;

}

public int getCityid() {

return cityid;

}

public void setCityid(int cityid) {

this.cityid = cityid;

}

public void getProvince(){

List provinceList = as.getAreasPrvinceList();

HttpServletResponse resp= ServletActionContext.getResponse();

HttpServletRequest request = ServletActionContext.getRequest();

//resp.setContentType("xml");

resp.setContentType("text/html");

resp.setCharacterEncoding("utf-8");

try {

PrintWriter out = resp.getWriter();

out.print("");

out.print("");

out.print("請選擇省市");

out.print("");

for(int i=0;i

Areas area = (Areas) provinceList.get(i);

out.print("");

out.print(area.getAreaTitle());

out.print("");

}

out.print("");

//out.print("shanghai");

} catch (IOException e) {

e.printStackTrace();

}

}

public void getCity(){

List cityList = as.getAreasCityList(provinceid);

HttpServletResponse resp= ServletActionContext.getResponse();

//resp.setContentType("xml");

resp.setContentType("text/html");

resp.setCharacterEncoding("utf-8");

try {

PrintWriter out = resp.getWriter();

out.print("");

out.print("");

out.print("請選擇市區");

out.print("");

for(int i=0;i

Areas area = (Areas) cityList.get(i);

out.print("");

out.print(area.getAreaTitle());

out.print("");

}

out.print("");

//out.print("shanghai");

} catch (IOException e) {

e.printStackTrace();

}

}

public void getArea(){

List areaList = as.getAreasCityList(cityid);

if(areaList.size()==0){

}else{

HttpServletResponse resp= ServletActionContext.getResponse();

resp.setContentType("text/html");

resp.setCharacterEncoding("utf-8");

try {

PrintWriter out = resp.getWriter();

out.print("");

out.print("");

out.print("請選擇市區");

out.print("");

for(int i=0;i

Areas area = (Areas) areaList.get(i);

out.print("");

out.print(area.getAreaTitle());

out.print("");

}

out.print("");

} catch (IOException e) {

e.printStackTrace();

}

}

}

}