zoukankan      html  css  js  c++  java
  • 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页面中的代码为:

          <div class="drink"><label class="label">所在地</label> 
          <span id="showp"></span>
          <span id="show"></span>
          <span id="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 {
       PrintWriter out = resp.getWriter();
       out.print("<select id='province' onchange='mysend(this.value)' name='province'>");
       out.print("<option value='-1'>");
       out.print("请选择省市");
       out.print("</option>");
       for(int i=0;i<provinceList.size();i++){
        Areas area = (Areas) provinceList.get(i);
        out.print("<option value='"+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 {
       PrintWriter out = resp.getWriter();
       out.print("<select id='city' onchange='myarea(this.value)' name='city'>");
       out.print("<option value='-1'>");
       out.print("请选择市区");
       out.print("</option>");
       for(int i=0;i<cityList.size();i++){
        Areas area = (Areas) cityList.get(i);
        out.print("<option value='"+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{
       HttpServletResponse resp= ServletActionContext.getResponse();
       
       resp.setContentType("text/html");
       resp.setCharacterEncoding("utf-8");
       try {
        PrintWriter out = resp.getWriter();
        out.print("<select id='area' name='area'>");
        out.print("<option value='-1'>");
        out.print("请选择市区");
        out.print("</option>");
        for(int i=0;i<areaList.size();i++){
         Areas area = (Areas) areaList.get(i);
         out.print("<option value='"+area.getAreaId()+"'>");
         out.print(area.getAreaTitle());
         out.print("</option>");
        }
        
        out.print("</select>");
        
       } catch (IOException e) {
        e.printStackTrace();
       }
       
      }
       
     }

    }

  • 相关阅读:
    关于架构,关于系统,关于合作,我也得问问我们自己
    vs2013 无法打开 源 文件 "SDKDDKVer.h"
    视频基础知识汇总
    python gRPC接口调用
    python多线程同时执行2个函数任务之threading
    git基本操作_快速查询
    pycharm激活码 我是搬运工
    CodeReview的一些原则
    python多线程执行同一个函数任务之threading、ThreadPoolExecutor.map
    python程序超时处理 timeout_decorator
  • 原文地址:https://www.cnblogs.com/joycelishanhe/p/3799268.html
Copyright © 2011-2022 走看看