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

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

    代码如下:

   建立数据库中的代码和一些配置文件信息就省略了,主要有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' οnchange='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' οnchange='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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Ajax省市区三级联动是一种前端页面交互功能,用于在用户选择省份、城市和区县时实现动态加载相应数据的功能。 首先,需要在前端页面通过HTML代码创建三个下拉框,分别表示省份、城市和区县。然后,使用JavaScript编写前端的Ajax请求,通过发送异步请求到后端服务,获取数据。 在后端Java代码中,可以使用Spring MVC或Servlet等框架处理前端Ajax请求。首先,需要在数据库中建立相应的省市区数据表,并将数据存储在表中。然后,可以使用JDBC或MyBatis等数据库访问框架,编写相应的Java代码实现数据的查询和返回。 具体实现时,可以通过监听省份下拉框的变化事件,在事件处理函数内发送Ajax请求到后端服务,将当前选择的省份作为参数传递给后端。后端服务可以根据省份查询对应的城市数据,将城市数据返回给前端。 类似地,继续监听城市下拉框的变化事件,在事件处理函数内发送Ajax请求到后端服务,将当前选择的城市和省份作为参数传递给后端。后端服务可以根据城市和省份查询对应的区县数据,将区县数据返回给前端。 最后,根据返回的数据,在前端页面使用JavaScript动态修改区县下拉框的选项,实现三级联动效果。 总结起来,Java Ajax省市区三级联动通过前端页面的交互和后端的数据处理,实现了在用户选择省份、城市和区县时动态加载相应数据的功能。这种开发方式能够提高用户体验,同时满足实际业务需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值