AJAX省市区三级联动下拉列表实现 JAVA开发

来源:互联网 发布:sql注入过安全狗 编辑:程序博客网 时间:2024/05/18 02:26

此小程序的功能主要是采用异步请求方式从数据库中调取省市区信息显示到下拉列表:

    代码如下:

   建立数据库中的代码和一些配置文件信息就省略了,主要有JavaScript中的代码为:

   $(document).ready(function(){
    $.get("getProvince.do",function(result){
      $("#showp").html(result);
    });
   })
   varxmlhttp;
   functionmysend(str){
    $(document).ready(function(){
        $("#show2").html("");
     })
    varshow = document.getElementByIdx_x_x_x_x_x("show");
    show.innerHTML= "";
   
    varprovince = 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页面中的代码为:

      <divclass="drink"><labelclass="label">所在地</label> 
      <spanid="showp"></span>
     <spanid="show"></span>
     <spanid="show2"></span></div>

   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 {
   PrintWriterout = resp.getWriter();
   out.print("<selectid='province' onchange='mysend(this.value)'name='province'>");
   out.print("<optionvalue='-1'>");
   out.print("请选择省市");
   out.print("</option>");
   for(inti=0;i<provinceList.size();i++){
    Areasarea = (Areas) provinceList.get(i);
    out.print("<optionvalue='"+area.getAreaId()+"'>");
    out.print(area.getAreaTitle());
    out.print("</option>");
   }
   
   out.print("</select>");
   //out.print("<xml><city>shanghai</city></xml>");
  } 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 {
   PrintWriterout = resp.getWriter();
   out.print("<selectid='city' onchange='myarea(this.value)'name='city'>");
   out.print("<optionvalue='-1'>");
   out.print("请选择市区");
   out.print("</option>");
   for(inti=0;i<cityList.size();i++){
    Areasarea = (Areas) cityList.get(i);
    out.print("<optionvalue='"+area.getAreaId()+"'>");
    out.print(area.getAreaTitle());
    out.print("</option>");
   }
   
   out.print("</select>");
   //out.print("<xml><city>shanghai</city></xml>");
  } catch (IOException e) {
   e.printStackTrace();
  }
  
   
 }
 
 public void getArea(){
  
  List areaList =as.getAreasCityList(cityid);
  if(areaList.size()==0){
   
  }else{
   HttpServletResponseresp= ServletActionContext.getResponse();
   
   resp.setContentType("text/html");
   resp.setCharacterEncoding("utf-8");
   try {
    PrintWriterout = resp.getWriter();
    out.print("<selectid='area' name='area'>");
    out.print("<optionvalue='-1'>");
    out.print("请选择县区");
    out.print("</option>");
    for(inti=0;i<areaList.size();i++){
     Areasarea = (Areas) areaList.get(i);
     out.print("<optionvalue='"+area.getAreaId()+"'>");
     out.print(area.getAreaTitle());
     out.print("</option>");
    }
    
    out.print("</select>");
    
   } catch(IOException e) {
    e.printStackTrace();
   }
   
  }
   
 }

}
0 0
原创粉丝点击