此小程式的功能主要是採用非同步請求方式從資料庫中調取省市區資訊顯示到下拉式清單:
代碼如下:
建立資料庫中的代碼和一些設定檔資訊就省略了,主要有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_x_x_x_x("show");show.innerHTML = "";var province = document.getElementByIdx_x_x_x_x_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_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;@Controllerpublic class ProvinceAction {private int provinceid;private int cityid;@Resourceprivate AreasService as;@Resourceprivate 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("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("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("");} catch (IOException e) {e.printStackTrace();}}}}
主要的功能代碼都在上面了,如有不懂的請聯絡QQ:1037139984,祝大家都有好的發展,共同學習,共同成長。