iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Ajax如何实现省市区三级级联
  • 257
分享到

Ajax如何实现省市区三级级联

2023-06-08 07:06:28 257人浏览 安东尼
摘要

这篇文章主要介绍ajax如何实现省市区三级级联,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现Ajax实现省市区三级级联,需要Java解析JSON技术 整体Demo下载地址如下: 点我下载address.html&

这篇文章主要介绍ajax如何实现省市区三级级联,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

实现Ajax实现省市区三级级联,需要Java解析JSON技术
整体Demo下载地址如下: 点我下载

address.html

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head> <script type="text/javascript">    function getajaxHttp() {   var xmlHttp;   try {    // Firefox, Opera 8.0+, Safari     xmlHttp = new XMLHttpRequest();   } catch (e) {    // Internet Explorer     try {     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");    } catch (e) {     try {      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");     } catch (e) {      alert("您的浏览器不支持AJAX!");      return false;     }    }   }   return xmlHttp;  }    function ajaxrequest(url, methodtype, con, functionName) {   //获取XMLHTTPRequest对象   var xmlhttp = getajaxHttp();   //设置回调函数(响应的时候调用的函数)   xmlhttp.onreadystatechange = function() {    //这个函数中的代码在什么时候被XMLHTTPRequest对象调用?    //当服务器响应时,XMLHTTPRequest对象会自动调用该回调方法    if (xmlhttp.readyState == 4) {     if (xmlhttp.status == 200) {      functionName(xmlhttp.responseText);     }    }   };   //创建请求   xmlhttp.open(methodtype, url, con);   //发送请求   xmlhttp.send();  }  window.onload=function(){   ajaxrequest("addressSerlvet?method=provincial","POST",true,addrResponse);  }  //动态获取省的信息  function addrResponse(responseContents){   var jsonObj = new Function("return" + responseContents)();   for(var i = 0; i < jsonObj.addrList.length;i++){    document.getElementById('select').innerHTML +=      "<option value='"+jsonObj.addrList[i].id+"'>"      +jsonObj.addrList[i].address+     "</option>"   }  }  //选中省后  function pChange(){   //先将市的之前的信息清除   document.getElementById('selectCity').innerHTML="<option value='-1'>请选择市</option>";   //再将区的信息清除   document.getElementById('selectArea').innerHTML="<option value='-1'>请选择区</option>";   //再将用户的输入清楚   document.getElementById("addr").innerHTML="";   var val = document.getElementById('select').value;   if(val == -1){    document.getElementById('selectCity')[0].selected = true;    return;   }   //开始执行获取市   ajaxrequest("addressSerlvet?method=city&provincial="+val,"POST",true,cityResponse);  }  //获取市的动态数据  function cityResponse(responseContents){   var jsonObj = new Function("return" + responseContents)();   for(var i = 0; i < jsonObj.cityList.length;i++){    document.getElementById('selectCity').innerHTML +=      "<option value='"+jsonObj.cityList[i].id+"'>"      +jsonObj.cityList[i].address+     "</option>"   }  }  //选中市以后  function cChange(){   var val = document.getElementById('selectCity').value;   //开始执行获取区   ajaxrequest("addressSerlvet?method=area&cityId="+val,"POST",true,areaResponse);  }  //获取区的动态数据  function areaResponse(responseContents){   var jsonObj = new Function("return" + responseContents)();   for(var i = 0; i < jsonObj.areaList.length;i++){    document.getElementById('selectArea').innerHTML +=      "<option value='"+jsonObj.areaList[i].id+"'>"      +jsonObj.areaList[i].address+     "</option>"   }  }  //点击提交按钮  function confirM(){   //获取省的文本值   var p = document.getElementById("select");   var pTex = p.options[p.options.selectedIndex].text;   if(p.value=-1){    alert("请选择省");    return;   }   //获取市的文本值   var city = document.getElementById("selectCity");   var cityTex = city.options[city.options.selectedIndex].text;   if(city.value=-1){    alert("请选择市");    return;   }   //获取区的文本值   var area = document.getElementById("selectArea");   var areaTex = area.options[area.options.selectedIndex].text;   if(area.value=-1){    alert("请选择区");    return;   }   //获取具体位置id文本值   var addr = document.getElementById("addr").value;   //打印   document.getElementById("show").innerHTML = "您选择的地址为 " + pTex + " " + cityTex + " " + areaTex + " " + addr;  } </script><body> <select id="select" onchange="pChange()">  <option value="-1">请选择省</option> </select> <select id="selectCity" onchange="cChange()">  <option value='-1'>请选择市</option> </select> <select id="selectArea" onchange="aChange()">  <option value='-1'>请选择市</option> </select> <input type="text" id="addr" /> <button onclick="confirM();">确定</button> <div id="show"></div></body></html>

AddressServlet.java

package cn.bestchance.servlet;import java.io.IOException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.annotation.WEBServlet;import javax.servlet.http.httpservlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import cn.bestchance.dao.AddressDao;import cn.bestchance.dao.impl.AddressDaoImpl;import cn.bestchance.entity.Address;import net.sf.json.JSONArray;import net.sf.json.JSONObject;@WebServlet("/addressSerlvet")public class AddressSerlvet extends HttpServlet { private static final long serialVersionUID = 1L; private AddressDao dao = new AddressDaoImpl(); protected void doGet(HttpServletRequest request,   HttpServletResponse response) throws ServletException, IOException {  doPost(request, response); }  protected void doPost(HttpServletRequest request,   HttpServletResponse response) throws ServletException, IOException {  response.setCharacterEncoding("utf-8");  response.setContentType("text/html;charset=utf-8");  String method=request.getParameter("method");  if("provincial".equals(method)){   getProvincial(request, response);  }  if("city".equals(method)){   getCity(request, response);  }  if("area".equals(method)){   getArea(request, response);  } }  protected void getArea(HttpServletRequest request,   HttpServletResponse response) throws ServletException, IOException {  String cityId = request.getParameter("cityId");  // 从数据库中查询省的信息  ArrayList<Address> areaList = dao.getAreaByCityId(Integer.parseInt(cityId));  // 将集合转成json字符串  JSONObject jsonObj = new JSONObject();  JSONArray jsonArray = JSONArray.fromObject(areaList);  jsonObj.put("areaList", jsonArray);  String jsonDataStr = jsonObj.toString();  response.getWriter().print(jsonDataStr); }  protected void getProvincial(HttpServletRequest request,   HttpServletResponse response) throws ServletException, IOException {  // 从数据库中查询省的信息  ArrayList<Address> addrList = dao.getProvince();  // 将集合转成json字符串  JSONObject jsonObj = new JSONObject();  JSONArray jsonArray = JSONArray.fromObject(addrList);  jsonObj.put("addrList", jsonArray);  String jsonDataStr = jsonObj.toString();  response.getWriter().print(jsonDataStr); }  protected void getCity(HttpServletRequest request,   HttpServletResponse response) throws ServletException, IOException {  String provinceId = request.getParameter("provincial");  // 从数据库中查询省的信息  ArrayList<Address> addrList = dao.getCityByProvinceId(Integer.parseInt(provinceId));  // 将集合转成json字符串  JSONObject jsonObj = new JSONObject();  JSONArray jsonArray = JSONArray.fromObject(addrList);  jsonObj.put("cityList", jsonArray);  String jsonDataStr = jsonObj.toString();  response.getWriter().print(jsonDataStr); }}

AddressDao.java

package cn.bestchance.dao;import java.util.ArrayList;import cn.bestchance.entity.Address;public interface AddressDao {  ArrayList<Address> getProvince();  ArrayList<Address> getCityByProvinceId(int provinceId);  ArrayList<Address> getAreaByCityId(int cityId);}

AddressDaoImpl.java

package cn.bestchance.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import cn.bestchance.dao.AddressDao;import cn.bestchance.entity.Address;import cn.bestchance.util.DBUtil;public class AddressDaoImpl implements AddressDao { private DBUtil db = new DBUtil(); @Override public ArrayList<Address> getProvince() {  ArrayList<Address> addrList = new ArrayList<Address>();  db.openConnection();  String sql = "select * from province";  ResultSet rs = db.excuteQuery(sql);  try {   while(rs.next()){    Address addr = new Address();    addr.setId(rs.getInt(2));    addr.setAddress(rs.getString(3));    addrList.add(addr);   }  } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }finally{   if(rs != null){    try {     rs.close();    } catch (SQLException e) {     // TODO Auto-generated catch block     e.printStackTrace();    }   }   db.closeResoure();  }  return addrList; } @Override public ArrayList<Address> getCityByProvinceId(int provinceId) {  ArrayList<Address> addrList = new ArrayList<Address>();  db.openConnection();  String sql = "select * from city where fatherID = " + provinceId; //431200  ResultSet rs = db.excuteQuery(sql);  try {   while(rs.next()){    Address addr = new Address();    addr.setId(rs.getInt(2));    addr.setAddress(rs.getString(3));    addrList.add(addr);   }  } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }finally{   if(rs != null){    try {     rs.close();    } catch (SQLException e) {     // TODO Auto-generated catch block     e.printStackTrace();    }   }   db.closeResoure();  }  return addrList; } @Override public ArrayList<Address> getAreaByCityId(int cityId) {  ArrayList<Address> addrList = new ArrayList<Address>();  db.openConnection();  String sql = "select * from area where fatherID = " + cityId; //431200  ResultSet rs = db.excuteQuery(sql);  try {   while(rs.next()){    Address addr = new Address();    addr.setId(rs.getInt(2));    addr.setAddress(rs.getString(3));    addrList.add(addr);   }  } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }finally{   if(rs != null){    try {     rs.close();    } catch (SQLException e) {     // TODO Auto-generated catch block     e.printStackTrace();    }   }   db.closeResoure();  }  return addrList; }}

实体类Address.java

package cn.bestchance.entity;public class Address { @Override public String toString() {  return "Address [id=" + id + ", address=" + address + "]"; } private int id; private String address; public int getId() {  return id; } public void setId(int id) {  this.id = id; } public String getAddress() {  return address; } public void setAddress(String address) {  this.address = address; } public Address() {  super();  // TODO Auto-generated constructor stub } public Address(int id, String address) {  super();  this.id = id;  this.address = address; }}

什么是ajax

ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,可以通过在后台与服务器进行少量数据交换,使网页实现异步更新。

以上是“Ajax如何实现省市区三级级联”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Ajax如何实现省市区三级级联

本文链接: https://www.lsjlt.com/news/252711.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Ajax如何实现省市区三级级联
    这篇文章主要介绍Ajax如何实现省市区三级级联,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现Ajax实现省市区三级级联,需要Java解析json技术 整体Demo下载地址如下: 点我下载address.html&...
    99+
    2023-06-08
  • Ajax实现省市区三级联动
    目录需要的jar包:数据库代码:省:市:区:页面展示代码:DBHelper类:总结需要的jar包: 数据库代码: create database school charact...
    99+
    2022-11-12
  • Ajax实现省市区三级联动实例代码
    html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF...
    99+
    2022-11-13
  • java实现省市区三级联动
    本文实例为大家分享了java实现省市区三级联动的具体代码,供大家参考,具体内容如下 我搭建的是SSM 框架: 一、实现三级联动 以省市区为例:我的想法很简单 ,可能想的有点少,首先遍...
    99+
    2022-11-13
  • AJAX实现省市县三级联动效果
    最近在学AJAX做到这个省市县三级联动的案例,这里只是讲一下ajax请求的一些知识,对服务端数据.php文件就不叙述了。 (tips:其实省市县三级联动只需要引入jQuery省市县三...
    99+
    2022-11-12
  • ajax实现三级联动省市的代码
    本篇内容主要讲解“ajax实现三级联动省市的代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ajax实现三级联动省市的代码”吧!目录创建数据库首先创建 City 和 Province 类 给g...
    99+
    2023-06-20
  • AJAX和WebService如何实现省市县三级联动
    小编给大家分享一下AJAX和WebService如何实现省市县三级联动,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • js实现简单省市区三级选择联级
    本文实例为大家分享了js实现省市区三级选择联级的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html lang="en"&g...
    99+
    2022-11-12
  • 三级联动省市ajax的代码
    目录创建数据库首先创建 City 和 Province 类 给getter setter tostring 以及 构造方法 Province类City类连接数据库创建 接口 Prov...
    99+
    2022-11-12
  • ajax如何实现无刷新省市县三级联动
    这篇文章主要介绍“ajax如何实现无刷新省市县三级联动”,在日常操作中,相信很多人在ajax如何实现无刷新省市县三级联动问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ajax如何实现无刷新省市县三级联动”的疑...
    99+
    2023-06-08
  • 基于jquery实现的省市区级联无ajax
    希望和大家一起学习,更希望能找一份好工作,我是PHP开发工程师 以下是代码页面 复制代码 代码如下: <span rel="con_address" class="con_ad...
    99+
    2022-11-15
    jquery 省市区级联 ajax
  • ajax实现城市三级联动
    本文实例为大家分享了ajax实现城市三级联动的具体代码,供大家参考,具体内容如下 在准备好服务器后 html部分 <div> <select n...
    99+
    2022-11-12
  • Vue自定义省市区三级联动
    本文实例为大家分享了Vue自定义省市区三级联动的具体代码,供大家参考,具体内容如下 1.如图(省市区加上全部联动) 第一步:找到了一个普通的省市区先进行遍历更改 2.把更改后的js...
    99+
    2022-11-13
  • Vue如何实现省市区三级联动el-select组件
    这篇文章主要介绍“Vue如何实现省市区三级联动el-select组件”,在日常操作中,相信很多人在Vue如何实现省市区三级联动el-select组件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vu...
    99+
    2023-07-05
  • 利用级联选择器实现省市区三级联动【vue + elementUI Plus | uViewUI】
    文章目录 准备数据vue + ElementUI Plus 利用级联选择器实现省市区三级联动学习记录具体代码 vue + uViewUI 利用选择器多列联动实现省市区三级联动 (uniapp学习记录具体代码 准备数据 ...
    99+
    2023-08-19
    vue.js elementui javascript 小程序 前端
  • 如何实现AJAX下拉框省、市二级联动
    本篇内容介绍了“如何实现AJAX下拉框省、市二级联动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!jsp页...
    99+
    2022-10-19
  • 使用JavaScript怎么实现一个省市区三级选择联级
    这期内容当中小编将会给大家带来有关使用JavaScript怎么实现一个省市区三级选择联级,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点...
    99+
    2023-06-14
  • vue实现省市区的级联选择
    最近要实现一个省市区级联选择效果,省市区的数据都是使用的本地数据,实现起来逻辑会有一点复杂,我在这里列举PC端的总结分享一下,移动端的代码也是差不多的,除了html之外,其它的可以复...
    99+
    2022-11-12
  • 使用ajax怎么实现一个省市三级联动效果
    使用ajax怎么实现一个省市三级联动效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是ajaxajax是一种在无需重新加载整个网页的情况下,能够更新部分网...
    99+
    2023-06-08
  • js实现省市区三级联动非select下拉框版
    在网上搜三级联动发现都是用option写的,突发奇想用其他方式写了一个,自我感觉效果还不错,大家感兴趣的可以看看,不说废话,大家看效果 代码如下,小白写的有点乱,大家想看的就看...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作