ajax 下拉列表联动的使用方法。

ajax的定义:

AJAX 是一种用于创建高速动态网页的技术。

通过在后台与server进行少量数据交换,AJAX 能够使网页实现异步更新。这意味着能够在不又一次载入整个网页的情况下,对网页的某部分进行更新。

ajax效果的一个样例:

区域为空的时候,维护人情况:

选了一个区域后的情况:(选 舒城县 联带出来的维护人员 小刘)

一、原生态的js实现

XMLHttpRequest 是 AJAX 的基础

XMLHttpRequest 对象

全部现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。

XMLHttpRequest 用于在后台与server交换数据。这意味着能够在不又一次载入整个网页的情况下,对网页的某部分进行更新。

var xmlHttp;

function createXMLHttpRequest(){
if(window.ActiveXObject){//检查浏览器是否支持 XMLHttpRequest 对象
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//不支持 创建
}
else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();//支持 直接new
}
}//创建一个xmlHttp 对象
function ajaxRequest(url,data,responseResult){//ajaxRequest是将请求发送到后台的function
createXMLHttpRequest();//调用 创建一个XMLHttpRequest对象
xmlHttp.open("POST",url,true);//规定请求的类型(post)、URL 以及是否异步处理请求(是)
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//相似HTML 表单那样 POST 数据 的http头
xmlHttp.onreadystatechange = responseResult;//规定在响应处于 onreadystatechange 事件中的就绪状态时运行的函数
xmlHttp.send(data);//发送数据 }

//前台页面的区域select代码:

</td>
<th>区域:</th>
<td>
<select style="width: 152px" name="areaId" id="areaId" class="select_field" onchange="getWhmans(this.value)">
<option value="" style="color:#999999">-请选择-</option>
<c:forEach items="${arealist}" var="area" >
<option value="${area.id}">${area.areaName}</option>
</c:forEach>
</select><font color="red">*</font>
</td>

//前台维护人select页面代码:

<th>维护人员:</th>
<td> <select id="whman" style="width: 152px" class="select_field" name="whman" >
<option value="" style="color:#999999">请选择</option> </select><font color="red">*</font> </td>

//下面是后台的部分代码

List<Whperson> customers = factoryBO.getFugBO().getWhperson(area);//依据区域来得到该区域下的维护人信息 即选一个下拉框的区域后联动还有一个下拉框带出该区域的维护人信息
if (customers != null) {
JSONArray jsonArray = new JSONArray();//new一个json数组
for (Whperson whman : customers) {
JSONObject obj = new JSONObject();
obj.put("id", whman.getId());
obj.put("name", whman.getName());
jsonArray.add(obj);//循环new jsonObject 并把维护人信息 put进去 再add到josnArray里去
}
out.write(jsonArray.toString());//输出写到页面 即以下的responseText里面
} else {
out.write("null");
}
out.flush();
out.close();
function responseCustomer(){//后台响应完毕后运行的function
if(xmlHttp.readyState == 4){//4表示请求已完毕 ,响应已就绪
if(xmlHttp.status == 200){//表示ok
var message=xmlHttp.responseText;//为后台返回过来的文本
if(message=="null"){//若没有返回不论什么信息
document.getElementById("id").options.length=1;//把id='id'的option下拉框置空
return false;
}
var info2 = eval(message); //解析一下json字符串
document.getElementById("whman").options.length=1;把id='id'的option下拉框先置空
$.each(info2, function(i,n){
document.getElementById("whman").options.add(new Option(n.gridName,n.gridId));//给下拉框option加上后台返回的值 即添加下拉框选项
});
}
}
}
function getGridByAreaId(val){//自己写的函数 还有一个option onchange事件触发的函数,目的是选这个option后 想要的option能级联
var url="village.do?method=getGridByAreaId";//请求后台的url
var data="id="+val.value;//传入后台的參数
ajaxRequest(url,data,responseCustomer);//实质要调用的ajax的函数 }

二、Jquery ajax的实现

function getWhmans(obj){
var url="bbtj.do?method=getWhman";//请求后台的url
$("#whman").empty();//先置空
$("#whman").append($('<option value="">-请选择-</option>'));//加上--请选择--选项
if($(obj).val()=="")
return;//无值,返回
url+="&areaId="+$(obj).val();//url參数
url+="&t="+(new Date()).valueOf();//url參数 $.ajax({
url:url,
type:'POST',//POST方式
dataType:'text',//返回text类型
beforeSend:function(xmlHttpRequest,status){ },
success:function(data,status){
var d=eval(data);//解析
$(d).each(function(index,entity){
$("#whman").append($('<option value="'+entity['id']+'">'+entity['name']+'</option>'));//后台数据加到下拉框
});
},
complete:function(xmlHttpRequest,status){ },
error:function(){ }
}); }

JAVA EE 项目经常使用知识 之AJAX技术实现select下拉列表联动的两种使用方法(让你真正理解ajax)的更多相关文章

  1. JAVA EE 项目常用知识 之AJAX技术实现select下拉列表联动的两种用法(让你真正理解ajax)

    ajax 下拉列表联动的用法. ajax的定义: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的 ...

  2. jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)

    在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. [WebMethod] public static string SayHe ...

  3. Java找N个数中最小的K个数,PriorityQueue和Arrays.sort()两种实现方法

    最近看到了 java.util.PriorityQueue.刚看到还没什么感觉,今天突然发现他可以用来找N个数中最小的K个数. 假设有如下 10 个整数. 5 2 0 1 4 8 6 9 7 3 怎么 ...

  4. 如何在tomcat中如何部署java EE项目

    如何在tomcat中如何部署java EE项目 1.直接把项目复制到Tomcat安装目录的webapps目录中,这是最简单的一种Tomcat项目部署的方法,也是初学者最常用的方法.2.在tomcat安 ...

  5. idea 导入 eclipse java ee 项目,并使用 tomcat 7 部署运行

    1.导入java ee项目.直接open 2.导入jar依赖 3.修改编译的目录 4.修改tomcat目录 5.tomcat添加目录 请注意classes单词 D:\project\xxxxxx\We ...

  6. [操作系统知识储备,进程相关概念,开启进程的两种方式、 进程Queue介绍]

    [操作系统知识储备,进程相关概念,开启进程的两种方式.进程Queue介绍] 操作系统知识回顾 为什么要有操作系统. 程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作 ...

  7. 菜鸡的Java笔记 第十三 String 类的两种实例化方法

    String 类的两种实例化方法 String 类的两种实例化方式的区别 String 类对象的比较 Stirng 类对象的使用分析 /*    1.String 类的两种实例化方式的区别       ...

  8. 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

    找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url ...

  9. maven搭建java ee项目

    1.点击File->New->Other,选择maven project   2.选择maven project,点击Next,,而后再点击next,进入如下界面 如图选择最后一个,点击n ...

随机推荐

  1. Qt setStyleSheet 添加背景色/背景图片(取消背景色,读取本地文件作为背景色)

    容易搞定,mainWindow 是一个QWidget.// 设置背景色为蓝色mainWindow.setStyleSheet("background-color:blue;"); ...

  2. synapse socket总结三:心跳(Heartbeat)

    首先转载一篇关于心跳的博文解释: 所谓的心跳包就是客户端定时发送简单的信息给服务器端告诉它我还在而已.代码就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到 ...

  3. Vijos 1100 加分二叉树

    题目 1100 加分二叉树 2003年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB   题目描述 Description 设一个n个节点的二叉树tree的中序遍历为( ...

  4. 破解企业QQ对个人QQ登陆的限制(原创)

    运行系统:WIN7 破解时间:2014-02-19 破解思路:自从2013-11-11的1.85版企业qq更新后,网上流传的破解方法(运行文件BeatQQEIM.bat)已经不起作用了,可以同时登陆, ...

  5. 十句话教你学会Linux数据流重定向

    1.看到重定向一下子就想起了web里面的redirect,没错,但是Linux数据流重定向的作用不是跳到另一个网页,而是用来存储重要的屏幕信息.将不必要的屏幕信息输出到文件里或者“黑洞”里.将错误信息 ...

  6. android 实现蓝牙自动配对连接

    BluetoothConnectActivityReceiver.java:监听蓝牙配对的广播 代码: package com.imte.Broadcast; import com.imte.util ...

  7. 【 D3.js 入门系列 — 2 】 绑定数据和选择元素

    1. 如何绑定数据 D3 有一个很独特的功能:能将数据绑定到 DOM 上,也就是绑定到文档上.这么说可能不好理解,例如网页中有段落元素<p>,我们可以将整数 5 与 <p>绑定 ...

  8. Java--对象内存布局

    在HotSpot虚拟机中,对象在内存中的存储布局可以分为3块区域:对象头部.实例数据.对齐填充. 一.对象头部Header的布局 Mark Word Class 指针 在32位系统下,上面两部分各占4 ...

  9. oschina程序开发

    程序开发 102脚本编程语言 36地图相关 7Epub电子图书工具 109UI组件库 16代码生成工具 25SVG开发包 17推荐引擎 3指纹识别 23拼音转换工具包 24蓝牙开发 295GUI开发框 ...

  10. Hdu 1404 Digital Deletions

    Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1404 刚开始想采取找规律的方法解题,可以没有发现规律.无奈,只好采用求PN点的方法. 我们假 ...