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

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),布布扣,bubuko.com

时间: 2024-10-03 22:20:46

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

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

ajax 下拉列表联动的用法. ajax的定义: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. ajax效果的一个例子: 区域为空的时候,维护人情况: 选了一个区域后的情况:(选 舒城县 联带出来的维护人员 小刘) 一.原生态的js实现 XMLHttpRequest 是 AJAX 的基础 XMLHttpRequest 对象 所有现代浏览器均支持 XMLHttp

java中实现多线程的两种基本方法

java中实现多线程有两种基本方法,一种是继承Thread, 另一种是实现Runnable接口. 但是因为java中子类只能继承一个父类,如果采用继承Thread类,就不能继承其他类,很受限制. 以下是采用继承Thread类的例子: public class MyThreadTest{ public static void main(String[] args){ MyThread amythread1=new MyThread("my thread 1"); MyThread amy

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

找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url=Vz4TlygvnMyYVj105bCuzkusjF0G5rM6opHvEzhcCaJK5s1gFUZ3PBgAWCNsfY1RmtPf4ZEo8EV_Gd7SYKV4S_ 在有Struts部署的Java EE环境中,我们一般把jsp页面写在WebRoot\WEB-INF\content 目录下,

Java EE 项目开发采用的模式

一.Java EE 传统开发采用的模式:Model1 模式 最原始的 Web 程序是基于 Java Servlet 编写的,后来 JSP 技术的出现,使得把 Web 程序中的 html/xhtml 文档与 Java 业务逻辑代码有效地分离成为可能.通常, JSP 负责动态生成 Web 网页,而业务逻辑则由其他可重用的组件(如 JavaBean)来实现.JSP 可通过 Java 程序片段来访问这些组件,于是就有了 JSP+JavaBean 这样一种通行的程序结构. 在这种模式下,JSP 集控制和显

maven搭建java ee项目

1.点击File->New->Other,选择maven project 2.选择maven project,点击Next,,而后再点击next,进入如下界面 如图选择最后一个,点击next 3.看到以下界面 输入Group Id跟Artifact Id,点击finish完成基本创建 4.创建好的项目结构如图所示(Java视图) 如果是Java EE视图,看到的项目结构不是这个样子的,可以如下更换为java 视图 5.右击项目->Build Path->Configure Buil

用maven搭建java ee项目

一.开发环境 jdk1.7  tomcat7 eclipse-jee-luna-R-win32 maven2.2.1 二搭建步骤 1.点击File->New->Other,选择maven project 2.选择maven project,点击Next,,而后再点击next,进入如下界面 如图选择最后一个,点击next 3.看到以下界面 输入Group Id跟Artifact Id,点击finish完成基本创建 4.创建好的项目结构如图所示(Java视图) 如果是Java EE视图,看到的项目

IntelliJ IDEA 14.1.1 部署运行JSP 或者Java EE项目

本次主要介绍IntelliJ IDEA 14.1.1下部署运行Java WEB项目,包括JSP Java EE . 新建Java Web项目: 首先选择File-->New--Mudule(或者打开Project Structure  Ctrl+Alt+Shift+S选择Mudules) 出现下图:勾选Java 或者Java Enterprise中的Web Application都可以 Java Enterprise中的Java EE可以勾选Java EE版本 和 Application ser

Java Web项目开发到底需要掌握哪些技术?

目前, 国内外信息化建设已经进入基于Web应用为核心的阶段, Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.概括一下,实施Java的WEB项目需要掌握的技术如下: lJava语言 l面向对象分析设计思想 l设计模式和框架结构 lXML语言 l网页脚本语言 l数据库 l应用服务器 l集成开发环境 下面我们具体地看每个技术. 1.Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servle

Ajax跨域问题的两种解决方法

浏览器不允许Ajax跨站请求,所以存在Ajax跨域问题,目前主要有两种办法解决. 1.在请求页面上使用Access-Control-Allow-Origin标头. 使用如下标头可以接受全部网站请求: header('Access-Control-Allow-Origin:*') 使用如下标头可以接受指定网站请求: header('Access-Control-Allow-Origin:http://www.abc.com') 所以,服务器写法: header('Access-Control-Al