jQuery+jsp实现省市县三级联动效果(附源码)

 更新时间:2015年12月03日 16:09:33   作者:牛奶、不加糖  
这篇文章主要介绍了jQuery+jsp实现省市县三级联动效果,以完整实例形式分析了jQuery结合jsp读取MySQL数据库操作实现省市县三级联动效果的相关技巧,并附带完整实例源码供读者下载参考,需要的朋友可以参考下

本文实例讲述了jQuery+jsp实现省市县三级联动效果的方法。分享给大家供大家参考,具体如下:

在这里,用MySQL数据库存储了全国所有的省市县地区信息(点击此处下载源代码)

使用过的jar包

google的Gson.jar
mysql-connector-java-5.1.13-bin.jar

将实验图贴出来:

显示页面index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>"> 
 <title>省市区三级联动下拉菜单</title>
 <script type="text/javascript" src="<%=path %>/js/jquery/jquery-1.7.min.js"></script>
 <script type="text/javascript" src="<%=path %>/js/json/json-minified.js"></script>
 </head>
 <body>
 <table>
 <tr>
 <td>
 省份:
 <select name="province" id="province" onchange="onSelectChange(this,'city');"></select>
 城市:
 <select name="city" id="city" onchange="onSelectChange(this,'district');">
  <option value="">请选择</option>
 </select>
 区(县):
 <select name="district" id="district">
  <option value="">请选择</option>
 </select>
 </td>
 </tr>
 </table>
 </body>
</html>
<script type="text/javascript">
function onSelectChange(obj,toSelId){
 setSelect(obj.value,toSelId);
}
function setSelect(fromSelVal,toSelId){
 //alert(document.getElementById("province").selectedIndex);
 document.getElementById(toSelId).innerHTML="";
 jQuery.ajax({
  url: "<%=path%>/getDropdownDataServlet",
  cache: false,
  data:"parentId="+fromSelVal,
  success: function(data){
  createSelectObj(data,toSelId);
  }
 });
}
function createSelectObj(data,toSelId){
 var arr = jsonParse(data);
 if(arr != null && arr.length>0){
  var obj = document.getElementById(toSelId);
  obj.innerHTML="";
  var nullOp = document.createElement("option");
  nullOp.setAttribute("value","");
  nullOp.appendChild(document.createTextNode("请选择"));
  obj.appendChild(nullOp);
  for(var o in arr){
   var op = document.createElement("option");
   op.setAttribute("value",arr[o].id);
   //op.text=arr[o].name;//这一句在ie下不起作用,用下面这一句或者innerHTML
   op.appendChild(document.createTextNode(arr[o].name));
   obj.appendChild(op);
  }
 }
}
setSelect('1','province');
</script>

数据库交互GetDropdownDataServlet

public class GetDropdownDataServlet extends HttpServlet {
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws IOException, ServletException {
  doPost(request, response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws IOException, ServletException {
  String parentId = request.getParameter("parentId");
  if (parentId == null || parentId == "") {
   parentId = "0";
  }
  Connection conn = null;
  String json = "";
  try {
   Class.forName("com.mysql.jdbc.Driver");
   conn = DriverManager.getConnection("jdbc:mysql://localhost/dropdown",
     "root", "root");
   Statement stat = conn.createStatement();
   ResultSet rs = stat
     .executeQuery("select region_id,region_name from region where parent_id = "
       + parentId);
   ArrayList rsList = new ArrayList();
   Map map = null;
   while (rs.next()) {
    map = new HashMap();
    map.put("id", rs.getInt(1));
    map.put("name", rs.getString(2));
    rsList.add(map);
   }
   rs = null;
   Gson gson = new Gson();
   json = gson.toJson(rsList);
   System.out.println("json=" + json);
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   if (conn != null) {
    try {
     conn.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
   }
  }
  response.setCharacterEncoding("UTF-8");
  response.getWriter().print(json);
 }
}

希望本文所述对大家jQuery程序设计有所帮助。

相关文章

  • jQuery-Citys省市区三级菜单联动插件使用详解

    jQuery-Citys省市区三级菜单联动插件使用详解

    这篇文章主要为大家详细介绍了jQuery-Citys省市区三级菜单联动插件使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • jQuery特殊符号转义的实现

    jQuery特殊符号转义的实现

    下面小编就为大家带来一篇jQuery特殊符号转义的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • jQuery Validate验证框架详解(推荐)

    jQuery Validate验证框架详解(推荐)

    jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。有兴趣的可以了解一下。
    2016-12-12
  • jQuery实现带幻灯的tab滑动切换风格菜单代码

    jQuery实现带幻灯的tab滑动切换风格菜单代码

    这篇文章主要介绍了jQuery实现带幻灯的tab滑动切换风格菜单代码,可实现点击菜单项进行对应内容的滑动切换功能,涉及jquery鼠标事件及页面元素属性的动态操作技巧,需要的朋友可以参考下
    2015-08-08
  • jquery ajax 请求小技巧实例分析

    jquery ajax 请求小技巧实例分析

    这篇文章主要介绍了jquery ajax 请求小技巧,结合实例形式分析了jquery ajax请求操作相关配置与使用技巧,需要的朋友可以参考下
    2019-11-11
  • 浅析jquery某一元素重复绑定的问题

    浅析jquery某一元素重复绑定的问题

    本篇文章主要是对jquery某一元素重复绑定的问题进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • jQuery绑定事件的几种实现方式

    jQuery绑定事件的几种实现方式

    这篇文章主要为大家详细介绍了jQuery绑定事件的几种实现方式,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • jquery实现可关闭的倒计时广告特效代码

    jquery实现可关闭的倒计时广告特效代码

    这篇文章主要介绍了jquery实现可关闭的倒计时广告特效代码,涉及jquery计时器及鼠标事件动态操作页面元素样式的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • jquery插入兄弟节点的操作方法

    jquery插入兄弟节点的操作方法

    下面小编就为大家带来一篇jquery插入兄弟节点的操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • jQuery $.get 的妙用 访问本地文本文件

    jQuery $.get 的妙用 访问本地文本文件

    当页面文件.html作为本地文件打开(即IE路径为file:///开头的)的时候,需要访问本地文本文件的内容时
    2012-07-07

最新评论