`
fable0618
  • 浏览: 47616 次
  • 性别: Icon_minigender_2
  • 来自: 火星
文章分类
社区版块
存档分类

使用XMLHTTPRequest对象级联更新下拉框值

阅读更多
不使用dwr.ext.jquery等等些基于javascript脚本框架,而使用最原始XMLHTTPRequest对象级联更新下拉框值,中间需借助XML进行做为中间语言

下面以 省 市 间级联更新作为示例:

后台以action连接数据库取数据

InitAction.java
 
//调用dao连接数据库
//将取得数据放入request内
request.setAttribute("listCity", listCity);
//跳转到xmlCity.jsp
request.getRequestDispatcher("/xmlCity.jsp").forward(request,response);
return null;


xmlCity.jsp
<%@ page language="java" import="java.util.*,com.etwin.persist.entity.*" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>
<?xml version="1.0" encoding="UTF-8"?>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<data>
	<c:forEach items="${listCity}" var="city">
    	<row>
    		<cityId>${city.cityId}</cityId>
    		<cityName>${city.cityName}</cityName>
    	</row>
    </c:forEach>    	
</data>
 


显示页面代码

 
<script type="text/javascript">
<!--
	var xmlhttp;
	function createXMLHTTPRequest(){
		if(window.ActiveXObject){
			xmlhttp =new ActiveXObject("Microsoft.XMLHttp");}
		else if(window.XMLHTTPRequest){
		 	xmlhttp = new XMLHTTPRequest();}
		else
			alert("加载信息失败,请尝试重新开启浏览器...");
	}
	function retrieveCity()
	{
             //初始化url,将请求发送给action.
	    var url = 'init.do?method=InitCity&proId='+document.getElementById("province").value;
	    createXMLHTTPRequest();
	    xmlhttp.onreadystatechange = handleStateChange;
	    xmlhttp.open( "GET", url, true );
		xmlhttp.send( null );   
	}
	function handleStateChange(){
		if( xmlhttp.readyState == 4&&xmlhttp.status == 200)
	    {
	    	var city = document.getElementById( 'city' );//得到市下拉列表框控件
        	if(city!=null){
                  //清空原有下拉列表
        		city.options.length=0;  
            	n = xmlhttp.responseXML.getElementsByTagName("row");
            	l = n.length;
            	//循环添加列表子项
	            for(var i=0;i<l;i++){
	               city.options.add(new Option(n[i].getElementsByTagName("cityName")[0].firstChild.nodeValue, n[i].getElementsByTagName("cityId")[0].firstChild.nodeValue));
	            }
            }
	    }
	}
//-->
</script>

//需要更新的市下拉框
<Select id=city size=1 name=city></Select>


在 省 下拉框onchange事件中调用retrieveCity函数即可(省下拉框在页面加载的时候就已经设置完毕).

最主要是得使用XML,用JS来解析XML然后设置下拉框值
分享到:
评论
1 楼 PlayJ2 2011-09-05  
不错哦

相关推荐

    AJAX级联下拉框源码

    在级联下拉框中,当用户在第一个下拉框中做出选择后,通过AJAX发送请求到服务器,服务器根据选择的值返回相应的数据,然后前端使用JavaScript处理这些数据,更新第二个下拉框的内容。 2. **HTML结构** 首先,我们...

    Ajax下拉框级联查询(JDBC+Servlet+XMLHttpRequest异步对象)

    文件包括了:项目工程(关键部分注解详细),以及sql文件。功能:选中第一个下拉框,局部刷新第二个下拉框的值,且...主要使用了MySQL,jdbc,servlet,jsp,而异步是使用了原生的JS和XMLHttpRequest异步对象实现的。

    ajax实现可配置无刷新级联下拉框

    级联下拉框允许用户在一个下拉框中选择一个选项后,根据所选的选项动态更新另一个下拉框的选项。Ajax 技术可以实现这种功能,而无需每次更改时都重新加载整个页面,从而提高应用性能。 Ajax(Asynchronous ...

    php实现三级级联下拉框

    在实现三级级联下拉框时,当用户选择一级分类后,JavaScript中的showMenu函数会被触发,通过创建的XMLHttpRequest对象向后端发送异步请求。后端PHP脚本响应请求后,将结果返回给前端页面,并动态更新二级分类下拉框...

    脚本实现下拉框省份级联

    在网页设计中,实现省份级联下拉框是一种常见的交互方式,它可以帮助用户方便地选择地理位置,例如在注册、填写地址等场景。本实例将详细讲解如何通过JavaScript来实现这样的功能,具体步骤如下: 首先,我们需要...

    AJAX-DWR下拉框级联

    AJAX-DWR下拉框级联是Web开发中一种常见的交互设计,主要用于提高用户体验,使得用户在选择某个选项时,相关联的下拉框能够自动更新其内容,以适应不同的场景需求。在这个实验中,我们将重点探讨如何使用AJAX和DWR...

    ajax级联下拉forJava

    在本教程"ajax级联forJava"中,我们将探讨如何使用Ajax、JavaScript以及Java来实现级联下拉框的功能。 级联下拉框常用于需要展示关联数据的场景,如国家和城市的选择,当用户选择一个国家后,下拉框会动态更新并...

    下拉框二级联动

    5. **更新下拉框**:根据解析后的JavaScript对象,动态生成第二个下拉框的选项,然后使用DOM操作(如`innerHTML`或`append`)更新下拉框的内容。 6. **显示结果**:用户可以看到第二个下拉框的内容已经根据他们的...

    利益AJAX实现下拉框~无刷新

    这里可以使用`XMLHttpRequest`对象或者更现代的`fetch` API。 4. **服务器端处理**:服务器根据接收到的请求参数查询数据库,获取相应级别的数据,例如根据国家ID获取省份列表。 5. **响应处理**:AJAX请求成功后...

    javaScript城市级联选择

    使用`addEventListener`方法可以监听用户的选中事件,如`change`事件,当用户在省份下拉框中选择一个新值时触发函数,更新城市下拉框。 4. 数据结构设计: 为了存储城市数据,可以使用数组或对象。数组中的每个...

    AJAX3级级联下拉例子

    在这个例子中,用户选择一个选项时,下一个下拉框会根据前一个选项的值动态加载相关的数据,从而提供更精确的选择范围。 AJAX的核心在于XMLHttpRequest对象,它是浏览器内置的一个对象,用于在后台与服务器进行通信...

    Ajax 级联显示

    - **级联下拉框**:两个或多个下拉框,其中一个的选中项会触发Ajax请求获取其他下拉框的选项。 3. **JavaScript处理** - **创建XMLHttpRequest实例**:在JavaScript中,首先需要创建XMLHttpRequest对象实例。 - ...

    AJAX的核心对象以及在级联中的简单应用实例

    总结,AJAX的核心对象XMLHttpRequest结合DOM操作、CSS和数据格式如JSON,能够实现网页的异步更新和交互增强,从而提供更流畅、高效的用户体验。在级联应用中,AJAX特别适用于实现动态数据加载和实时更新,如表单验证...

    Ajax无刷新下拉框联动

    **无刷新级联更新**则是在选择一个下拉框后,通过Ajax调用后台接口,获取与当前选择相关的数据,然后在前端使用JavaScript动态更新另一个下拉框的选项。这种方式使得用户能够在选择过程中快速看到变化,提高了应用的...

    Ajax 无限级 联动下拉框

    3. 发送Ajax请求:构建合适的URL,携带当前级别的选中值作为参数,通过XMLHttpRequest对象发起GET或POST请求。 4. 处理服务器响应:服务器端接收到请求后,根据参数查询数据库,返回下一级别的选项数据,一般为JSON...

    AJAX实例的级联菜单

    在AJAX级联菜单中,用户通常会选择一个主类别,然后基于这个选择,相关的子类别会即时地在下一个下拉框中加载,无需页面刷新。这种交互方式提供了流畅的用户体验,提高了网页的响应速度和效率。 在给定的文件中,...

    Ajax实现三级联动下拉框

    给定的代码片段展示了如何使用Ajax实现三级联动下拉框的基本框架。下面将对关键部分进行解析: 1. **初始化XMLHttpRequest对象**: ```javascript if(window.XMLHttpRequest) { req=new XMLHttpRequest(); } ...

    js+ajax实现三级级联

    通常,我们会使用`XMLHttpRequest`对象或现代浏览器支持的`fetch` API来发起AJAX请求。例如,使用`XMLHttpRequest`: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'url_to_server', true); xhr...

    JS 省份城市级联选择

    4. **AJAX**:使用XMLHttpRequest或更现代的fetch API来异步获取数据。向服务器发送请求,请求中包含当前选中的省份ID,然后接收返回的城市数据。 5. **JSON数据格式**:通常,服务器会返回JSON格式的数据,包含...

    全国各省市联动下拉列表

    使用XMLHttpRequest或jQuery的`$.ajax()`方法向服务器发送请求,获取省市区的数据。通常这些数据以JSON格式存储,例如: ```json { "China": [ {"id": "1", "name": "北京市"}, {"id": "2", "name": "上海市"} ...

Global site tag (gtag.js) - Google Analytics