JAVA EE 中之AJAX 无刷新地区下拉列表三级联动
JSP页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ajax无刷新三级联动</title> <%
MemberDal md = new MemberDal(); //实例化封装的数据库操作类 ArrayList<Member> al1 = md.getMember(0); //获取第一级地区数据 %> <script type="application/javascript" src="jquery/jquery-1.11.3.js"></script> <script type="text/javascript"> function yijChangeJson()
{ //Jquery Ajax get方法异步请求调用数据 URL(第一级地区ID参数) + 回调函数
$.get("jsonMembers?parentid=" + $("#yij").val() + "&nocache=" + new Date().getTime(),
function(data,status){ //解析JSON 获取数组
var array = eval(data); var erj = document.getElementById("erj");
//清空下拉列表
erj.options.length = 1;
//遍历数据
for(var i = 0; i < array.length; i++)
{
//更改option标签内容和value
erj.options.add(new Option(array[i].name, array[i].id));
}
//清空第三级下拉列表
var sanj = document.getElementById("sanj");
sanj.options.length = 1;
})
} function erjChangeJson()
{ //Jquery Ajax get方法异步请求调用数据 URL(第二级地区ID参数) + 回调函数
$.get("jsonMembers?parentid=" + $("#erj").val() + "&nocache=" + new Date().getTime(),
function(data,status){ //解析JSON 获取数组
var array = eval(data); var sanj = document.getElementById("sanj");
//清空下拉列表
sanj.options.length = 1;
//遍历数据
for(var i = 0; i < array.length; i++)
{
//更改option标签内容和value
sanj.options.add(new Option(array[i].name, array[i].id));
}
})
} </script> </head>
<body> <form>
一级地区:
<select id="yij" name="yij" onchange="yijChangeJson()">
<option value="0">未选择</option>
<%
if(al1 != null)
{
for(Member m : al1) //遍历获取第一级地区数据集合并在option标签内输出
{
out.append("<option value='"+m.getId()+"'>"+m.getName()+"</option>");
}
}
%>
</select>
二级地区:
<select id="erj" name="erj" onchange="erjChangeJson()"> <option value="0">未选择</option>
</select> 三级地区:
<select id="sanj" name="sanj" > <option value="0" selected>未选择</option> </select> </body>
</html>
servlet
package com.hanqi; 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 com.hanqi.dao.Member;
import com.hanqi.dao.MemberDal; import com.alibaba.fastjson.*;//引入JSON的jar包 @WebServlet("/jsonMembers")
public class jsonMembers extends HttpServlet {
private static final long serialVersionUID = 1L; public jsonMembers() {
super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8"); String parentid = request.getParameter("parentid");//接收ajax发送参数 MemberDal md = new MemberDal(); //实例化封装的数据库操作类 if(parentid != null && parentid.trim().length() > 0)
{
int i = Integer.parseInt(parentid);//数据类型转换 String s = ""; try
{
ArrayList<Member> al = md.getMember(i); //根据参数查询数据获取集合 if(al != null)
{
s = JSON.toJSONString(al); //将集合以字符串形式存入JSON
}
}
catch (Exception e)
{
e.printStackTrace();
}
response.getWriter().append(s);//把JSON数据发送给JSP
}
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }
JAVA EE 中之AJAX 无刷新地区下拉列表三级联动的更多相关文章
- Ajax省市地区下拉列表三级联动
SQL数据库表 --创建Province表 CREATE TABLE [dbo].[Province]( [Id] [int] NULL, [Name] [varchar](50) NULL, [or ...
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
js中对arry数组的各种操作小结 最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...
- ajax无刷新获取天气信息
浏览器由于安全方面的问题,禁止ajax跨域请求其他网站的数据,但是可以再本地的服务器上获取其他服务器的信息,在通过ajax请求本地服务来实现: <?php header("conten ...
- Ajax.BeginForm()实现ajax无刷新提交
1. 同时安装 Microsoft jQuery Unobtrusive ajax 和 jQuery Unobtrusive Ajax,如下图 安装完成之后多了如下的js库 2. 引用该js库 lay ...
- 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片 ...
- thinkphp ajax 无刷新分页效果的实现
思路:先做出传统分页效果,然后重新复制一份Page.class.php类,对它进行修改,把js中的函数传到page类中,把上一页.下一页.首页.尾页.链接页中的url地址改成js控制的函数,模板页面中 ...
- DWZ框架Ajax无刷新表单提交处理流程
DWZ框架Ajax无刷新表单提交处理流程是: 1. ajax表单提交给服务器 2. 服务器返回一个固定格式json结构 3. js会调函数根据这个json数据做相应 ...
- Thinkphp框架 -- ajax无刷新上传图片
用Thinkphp框架做无刷新上传图片 视图层 View <!doctype html> <html lang="en"> <head> < ...
- ajax无刷新方式收集表单并提交表单
ajax无刷新方式收集表单有两种方式, 一个是使用html5的FormData.一个是传统的方式. 一,FormData,在主流的浏览器中可以用,IE不好用啊. 另外,FormData使用有两个条件, ...
随机推荐
- DIV+CSS左右列高度自适应问题
其实解决DIV+CSS左右两列高度自适应的方法就是要注意两点:一是在最外层加上overflow:hidden,然后在左边列加上margin-bottom:-9999px;padding-bottom: ...
- mysql查询语句的执行顺序(重点)
一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...
- 详见github
本栏博客不再专门更新,详见:https://github.com/dxscjx123/LeetCode
- 哈希表(一):解决hash冲突的几种方法
(一)线性探测法 线性探测法是最简单的处理冲突的方法. (1)插入元素:插入元素时,如果发生冲突,算法将从该槽位向后遍历哈希表,直到找到表中的下一个空槽,并将该值放入到空槽当中. (2)查找元素:查找 ...
- C++之指针,引用与数组
引用只是对象的另一个名字,通过在变量名前面添加"&”符号来定义,而指针保存的是另一个对象的地址,它们两都提供了间接访问所服务变量的途径. 但是它们的差别还是挺大的: 先从它们的值说起 ...
- Linux内核通知链分析【转】
转自:http://www.cnblogs.com/jason-lu/articles/2807758.html Linux内核通知链分析 1. 引言 Linux是单内核架构(monolithic k ...
- 用intellj 建一个spring mvc 项目DEMO
spring的起初可能经常碰壁,因为网上的资料都是混乱的xml堆成的,混乱难以理解,我这个也是,阿哈哈哈哈! 新建一个Maven->create from archetype->org.j ...
- ASPxTreeList的右键按钮事件
ASPxTreeList应该是比较长用的控件了~现在就来说说它的右键按钮事件 这里实现的是右键里有折合和展开所有节点的功能 code: <dx:ASPxTreeList ID="ASP ...
- CDN网站加速技术
什么是CDN? CDN(Content Delivery Network 内容分发网络)技术通过在各个地区部署缓存节点加速用户对静态资源的获取速度,提升用户体验,降低运营成本.CDN公司有网宿(Chi ...
- 判断ArcSDE是否安装成功
安装SDE后在ArcMap的Toolboxes - Data Management Tools中会新增Geodatabase Administration 即数据管理工具下面会新增地理数据库管理