ajax联动

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();
    }
时间: 2024-11-29 01:16:17

ajax联动的相关文章

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

第一步:设置界面 1 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="PCAControl.ascx.cs" Inherits="PCAControl" %> 2 <asp:ScriptManager ID="ScriptManager1" runat="server"> 3 </asp:

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

1.我如何在项目中使用dwz? 手册中有如下说明: 设计思路第一次打开页面时载入界面到客户端, 之后和服务器的交互只是数据交互, 不占用界面相关的网络流量. 支持HTML扩展方式来调用DWZ组件. 标准化Ajax开发, 降低Ajax开发成本. 也就是说,只需要在一个页面(通常是起始页,如index.aspx/index.php)包含框架,这里的框架是指demo中index.html页面的所有元素(<div class=”page”可自定义),完整的html结构.其它的页面只需要页面碎片,就是<

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

DevExpress2011控件教程)编辑控件(comboBox,AspxCheckBox) 范例1 AspxCheckBox 是一个检查编辑控件去展示特殊条件是否关闭或者打开.它通常会展示Yes/No 或者是 True/False 的选择给用户.用户可以通过用鼠标点击编辑控件改变Check状态或者通过按 SPACE键来改变. 2011版本允许有2或3种状态. ASPxCheckBox支持2到3中状态,依赖 AllowGrayed属性设置. 用程序设置状态,一般使用Checked 或者 Chec

最完美的select下拉框美化

很多人为 select 的诸多不完善而头痛,如无法自定义样式. IE6 中无法被浮动层遮住等等.下面介绍一款堪称最完美的下拉框组件: UU 人下拉框 特点 1 :美化的并且可自定义的外观 UU 人下拉框使用 JS 进行渲染.当页面引入了脚本和 CSS 后,页面中的下拉框都会变成如下外观:精心开发5年的UI前端框架! 该外观是由 CSS 和图片控制.通过修改 CSS 可以很方便地实现更改外观. UU 人下拉框不存在 IE6 中无法被浮动层遮住等问题. 特点 2 :使用简单 UU 人下拉框代码写法与

ajax简介以及用ajax做的三级联动小练习

ajax基本结构: 1 var name = $("#text_1").val(); 2 $.ajax({ 3 url: "Ashxs/Handler.ashx",//一般处理程序路径 4 data: { "name": name },//要传输的数据,冒号前面是键名后面是要传输的数据,如果有多条数据在大括号内用逗号拼接 5 type: "post",//传输方式 6 dataType: "json",//

使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能

使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用chinastates表查询 Ajax加载数据 1.这是chinastates表 2.做一个简单php:Ajax_eg.php <!DOCTYPE html><html>    <head>        <meta c

ajax实现省、市、区、三级联动(例题)

题目要求: 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用chinastates表查询 主界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quo

ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动

今天学了ajax技术,特地在此写下来作为复习. 一.什么是ajax? 客户端(特指PC浏览器)与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术  即,AJAX是一个[局部刷新]的[异步]通讯技术, 说白了就是局部刷新. 二.ajax的原理如下图 附上ajax与服务器之间的几种状态,但 4是所有浏览器都支持的的 三.ajax包含的技术如下图 四.ajax开发步骤 步一:创建ajax对象,例如:ajax = createAjax(); 步二:开启异步对象:例如:ajax.o

Ajax实现的城市二级联动二

上一篇联动一种只是城市用ajax请求获取并渲染,这里将省份也用ajax请求并渲染 1.HTML <select id="province"> <option>请选择</option> </select> <select id="city"> <option>请选择</option> </select> 2.JS /* * 省份信息和城市信息全部来源于服务器端 * * 第一