1、编写html代码,引入ajax文件

<script type="text/javascript" src="js/ajax.js"></script>
<select id="provinceID" style="width:111px">
<option>选择省份</option>
<option>湖南</option>
<option>广东</option>
</select>
&nbsp;&nbsp;&nbsp;
<select id="cityID" style="width:111px">
<option>选择城市</option>
</select>

2、编写html处理代码

    <script type="text/javascript">
//定位省份下拉框,同时添加内容改变事件
document.getElementById("provinceID").onchange = function(){
//清空城市下拉框中的内容,除第一项外
var cityElement = document.getElementById("cityID");
cityElement.options.length = 1;
//获取选中option标签的索引号,从0开始
var index = this.selectedIndex;
//定位选中的option标签
var optionElement = this[index];
//获取选中的option标签中的内容,即省份
var province = optionElement.innerHTML;
//如果选中的内容不是"选择省份"
if("选择省份" != province){
//NO1)
var ajax = createAJAX();
//NO2)
var method = "POST";
var url = "${pageContext.request.contextPath}/ProvinceCityServlet?time="+new Date().getTime();
ajax.open(method,url);
//设置AJAX请求头
ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");
//NO3)
var content = "province=" + province;
ajax.send(content); //---------------------------------等待 //NO4)
ajax.onreadystatechange = function(){
if(ajax.readyState == 4){
if(ajax.status == 200){
//NO5)从AJAX异步对象中获取服务器响应的xml文档
var xmlDocument = ajax.responseXML; //NO6)按照DOM规则,解析XML文档 var cityElementArray = xmlDocument.getElementsByTagName("city");
var size = cityElementArray.length;
for(var i=0;i<size;i++){
//innerHTML只能用在html/jsp中,不能用在xml中
var city = cityElementArray[i].firstChild.nodeValue;
//<option></option>
var optionElement = document.createElement("option");
//<option>广州</option>
optionElement.innerHTML = city;
//<select><option>广州</option></select>
cityElement.appendChild(optionElement);
}
}
}
}
}
}
</script>

3、编写java处理代码

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String province = request.getParameter("province"); //通知AJAX异步对象,服务器响应的数据为xml格式的
response.setContentType("text/xml;charset=UTF-8");
//获取字符输出流
PrintWriter pw = response.getWriter(); pw.write("<?xml version='1.0' encoding='UTF-8'?>");
pw.write("<root>"); if("广东".equals(province)){
pw.write("<city>广州</city>");
pw.write("<city>深圳</city>");
pw.write("<city>中山</city>");
}else if("湖南".equals(province)){
pw.write("<city>长沙</city>");
pw.write("<city>株洲</city>");
pw.write("<city>湘潭</city>");
pw.write("<city>岳阳</city>");
} pw.write("</root>");
pw.flush();
pw.close();
}

ajax联动的更多相关文章

  1. 省市区ajax联动

    function setCity1(){ var areaId1 = $('#areaId1').val(); var cityId1 = $('#cityId1'); var cityOpt = $ ...

  2. 02-26C#三级省市区ajax联动控件,利用UpdatePanel,以及页面取值

    第一步:设置界面 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="PCAC ...

  3. Java基础——JSON

    一.JSON定义 在百度百科中的解释:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript的一个子集. JSON采用完全独立于语言的 ...

  4. 解决IE下select option不支持display none样式

    万恶的IE,option竟然不支持display样式,想到的解决思路有二个: 1.ajax联动查询 2.jQuery的remove().after()方法 方法1的不好之处是初始页面,需要显示全部IP ...

  5. Dwz手册的补充说明和常见问题

    1.我如何在项目中使用dwz? 手册中有如下说明: 设计思路 第一次打开页面时载入界面到客户端, 之后和服务器的交互只是数据交互, 不占用界面相关的网络流量. 支持HTML扩展方式来调用DWZ组件. ...

  6. DevExpress2011控件教程)编辑控件(comboBox,AspxCheckBox) 范例1

    DevExpress2011控件教程)编辑控件(comboBox,AspxCheckBox) 范例1 AspxCheckBox 是一个检查编辑控件去展示特殊条件是否关闭或者打开.它一般会展示Yes/N ...

  7. ajax 多级联动 下拉框 Demo

    写了ajax实现级联下拉框,考虑常用,并且级联个数随不同业务个数不同,于是就整理了一下,实现了 ajax + N级联动 下拉框的效果 效果图 HTML 代码 <h2> 省级联动</h ...

  8. jQuery Ajax MVC 下拉框联动

    无刷新下拉框联动方法: Controllers代码 public JsonResult DH_Change(string DH_ID) { List<SelectListItem> Tea ...

  9. Ajax省市区无刷新单表联动查询

    方法一: 在很多时候都需要用到无刷新级联查询,本文将以省市区的级联查询作为例子.注:此为单表三级联动 环境:Vistual Studio 2015 .MSSQL 1.首先下载AjaxControlTo ...

随机推荐

  1. 組裝工廠設置IQC的目的

    在電子組裝工廠的組織裡,一般都會有 IQC (Incoming Quality Control) 這個單位,台灣稱之為「入(進)料管控」,大陸稱之為「來料管控」,其最主要目的在攔檢所有買進材料是否符合 ...

  2. libcurl编译

    下载: git://github.com/bagder/curl.git openssl: openssl编译   for linux or mingw:./buildconf./configure ...

  3. COCOS2d-x简易安装步骤

    准备工作:1.    下载 cocos2d-x  下载地址:http://cdn.cocos2d-x.org/cocos2d-x-2.2.zip2.    下载 python 2.7.3 下载地址:h ...

  4. Oracle Spatial-元数据及SDO_GEOMETRY

    一.空间表的元数据 将表的SDO_GEOMETRY列的所有对象作为一个空间层.Spatial需要对所有空间对象进行验证.创建索引和查询.此时需要为图层指定适当的元数据,该数据包含如下信息:维度.维度边 ...

  5. 使用Vitamio打造自己的Android万能播放器(7)——在线播放(下载视频)

    前言 本章将实现非常实用的功能——下载在线视频.涉及到多线程.线程更新UI等技术,还需思考产品的设计,如何将新加的功能更好的融入到现有的产品中,并不是简单的加一个界面就行了,欢迎大家交流产品设计和技术 ...

  6. 更改DataTable列名方法

    1.通过DataAdapter将查询的结果填充到DataSet的表(DataTable)中: 如:dataAdapter.Fill(dataSet),这时dataSet的表名默认为Table 如果使用 ...

  7. SQL SERVER2012新分页方式 轉載

    SQL SERVER2012在ORDER BY 子句中加入了新元素offset,允许用户在排序完成的结果集中自定义输出行范围,大大简化了分页SQL的书写方式和效率. SQL SERVER2012在OR ...

  8. 软件开发常用Linux命令

    解压缩 tar -zxvf xxx.tar.gz 文件显示及查找常用于分析log //显示file中包含aaa的行 cat <file>|grep aaa 查看cpu memory基本信息 ...

  9. 创建以及加载模块【nodejs第四篇】

    建立两个文件,文件一createModule.js ,文件二main.js createModule.js的代码,主要用于创建一个模块 /** * Created by Administrator o ...

  10. egret命令行编译项目时 版本不对应的问题

    egret 命令行编译项目时 如使用 egret build -e 会出现版本不对应的问题 分析原因 A,B项目 A项目使用1.8的egret引擎, B项目使用2.5引擎 但本地引擎升级至2.5.5, ...