Ajax案例-基于XML,以POST方式,完成省份-城市二级下拉联动
- <%@ page language="java" pageEncoding="UTF-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>基于XML,以POST方式,完成省份-城市二级下拉联动</title>
- <script type="text/javascript" src="js/ajax.js"></script>
- </head>
- <body>
- <select id="provinceID" style="width:111px">
- <option>选择省份</option>
- <option>湖南</option>
- <option>广东</option>
- </select>
-
- <select id="cityID" style="width:111px">
- <option>选择城市</option>
- </select>
- <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>
- </body>
- </html>
- package loaderman.provincecity;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- /**
- * 基于XML,以POST方式,完成省份-城市二级下拉联动
- * @author AdminTC
- */
- public class ProvinceCityServlet extends HttpServlet {
- 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案例-基于XML,以POST方式,完成省份-城市二级下拉联动的更多相关文章
- AJAX二级下拉联动【XML方式】
AJAX二级下拉联动案例 我们在购物的时候,常常需要我们来选择自己的收货地址,先选择省份,再选择城市- 有没有发现:当我们选择完省份的时候,出现的城市全部都是根据省份来给我们选择的.这是怎么做到的呢? ...
- 菜鸟学Java(七)——Ajax+Servlet实现无刷新下拉联动
下拉联动的功能可以说非常的常用,例如在选择省.市等信息的时候:或者在选择大类.小类的时候.总之,下拉联动很常用.今天就跟大家分享一个简单的二级下拉联动的功能. 大类下拉框:页面加载的时候就初始化大类的 ...
- Spring中Bean的配置:基于XML文件的方式
Bean的配置一共有两种方式:一种是基于XML文件的方式,另一种是基于注解的方式.本文主要介绍基于XML文件的方式 <bean id="helloWorld" class=& ...
- Spring Boot 框架下使用MyBatis访问数据库之基于XML配置的方式
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...
- ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动,还有从数据库中获得
今天学了ajax技术,特地在此写下来作为复习. 一.什么是ajax? 客户端(特指PC浏览器)与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术 即,AJAX是一个[局部刷新 ...
- 基于jQuery动画二级下拉导航菜单
春节回来给大家分享一款基于jQuery动画二级下拉导航菜单.鼠标经过的时候以动画的形式出现二级导航.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id=" ...
- AJAX多级下拉联动【JSON】
前言 前面我们已经使用过了XML作为数据载体在AJAX中与服务器进行交互.当时候我们的案例是二级联动,使用Servlet进行控制 这次我们使用JSON作为数据载体在AJAX与服务器交互,使用三级联动, ...
- 在AJAX里 使用【 JSON 】 返回数据类型 实现简单的下拉菜单数据
在AJAX里 使用JSON返回数据类型 实现简单的下拉菜单数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...
- Ajax案例-基于HTML,以GET或POST方式,检查注册用户名是否在数据库中已存在
08_register.jsp <%@ page language="java" pageEncoding="UTF-8"%> <!DOCTY ...
随机推荐
- 【Struts2】Ognl与ValueStack
一.OGNL 1.1 概述 1.2 OGNL 五大类功能 1.3 演示 二.ValueStack 2.1 概述 2.2 ValueStack结构 2.3 结论 2.3 一些问题 三.OGNL表达式常见 ...
- 各种web编辑器
wangEditor,这是一个很轻量.简洁编辑器 UEditor:百度前端的开源项目,功能强大,基于 jQuery,但已经没有再维护,而且限定了后端代码,修改起来比较费劲 bootstrap-wysi ...
- Delphi 构造和析构
- 记一次引用maven插件报错解决方法
1.报错信息如图: plugin org.springframework.boot:spring-boot-maven-plugin not found 2.解决方案: maven的配置文件[sett ...
- Tenka1 Programmer Contest 2019 D - Three Colors
Three Colors 思路:dp 设sum为所有边的总和 不能组成三角形的情况:某条边长度>=ceil(sum/2),可以用dp求出这种情况的方案数,然后用总方案数减去就可以求出答案. 注意 ...
- Xadmin相关实现
一,保存搜索条件(Save search conditions) kept conditions(保存条件)的应用场景比较常见,在我们查询时,可以实现多条件的筛选查询,比如:在淘宝上,选择了其中的一个 ...
- 数字签名 转载:http://www.youdzone.com/signature.html
What is a Digital Signature?An introduction to Digital Signatures, by David Youd Bob (Bob's public k ...
- “景驰科技杯”2018年华南理工大学程序设计竞赛 A. 欧洲爆破(思维+期望+状压DP)
题目链接:https://www.nowcoder.com/acm/contest/94/A 题意:在一个二维平面上有 n 个炸弹,每个炸弹有一个坐标和爆炸半径,引爆它之后在其半径范围内的炸弹也会爆炸 ...
- SpringBoot——》WebMvcConfigurerAdapter详解
一.WebMvcConfigurerAdapter是什么二.WebMvcConfigurerAdapter常用的方法1.addInterceptors:拦截器2.addCorsMappings:跨域3 ...
- playbook 实例
vim ~/.vimrc autocmd FileType yaml setlocal sw=2 ts=2 et ai 变量使用及错误处理 --- - hosts: db remote_user: r ...