<%@ 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>    &nbsp;&nbsp;&nbsp;<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();}
}

转载于:https://www.cnblogs.com/loaderman/p/10044107.html

Ajax案例-基于XML,以POST方式,完成省份-城市二级下拉联动相关推荐

  1. 菜鸟学Java(七)——Ajax+Servlet实现无刷新下拉联动

    下拉联动的功能可以说非常的常用,例如在选择省.市等信息的时候:或者在选择大类.小类的时候.总之,下拉联动很常用.今天就跟大家分享一个简单的二级下拉联动的功能. 大类下拉框:页面加载的时候就初始化大类的 ...

  2. 基于WPS实现Excel表的二级下拉选择框

    基于WPS实现Excel表的二级下拉选择框 第一步:先在sheet2上创建源数据 第二步:创建一级下拉框 第三步:创建二级下拉框 报错记录: "列表源"XXXXXX 第一步:先在s ...

  3. 事件+综合案例(卧龙首页+省份城市二级关联)

    一. 事件 1.鼠标事件 1.1表单onsubmit事件 作用:当表单的内容不符合要求的时候,阻止表单提交,在实际应用中,会给用户提示 代码演示: <!DOCTYPE html> < ...

  4. 事件、卧龙首页案例及省份城市二级关联

    一.事件 1.鼠标事件 1.1表单onsubmit事件 作用:当表单的内容不符合要求的时候,阻止表单提交,在实际应用中,会给用户提示 代码演示: <!DOCTYPE html> <h ...

  5. layui结合ajax实现下拉联动效果

    大家好好,我是雄雄,欢迎关注公众号:雄雄的小课堂. 昨天分享的是使用layui集合springboot实现图片上传,文章地址在这里,需要的小伙伴们可以去看看: 今天给大家分享的内容也是那天在造项目的时 ...

  6. 基于 vue +better scroll滑动切换页面 并支持下拉刷新案例

    也是公司项目 ,内部app的资讯模块整改,改是不可能改的,之前还是用jquery.感觉越改越混乱,还是重做.就仿着今日头条.等资讯页面做了一个dome,话不多说,先看效果! 微信扫码预览 效果看完,感 ...

  7. jquery ajax下拉联动,基于jQuery Ajax实现下拉框无刷新联动

    本文实例为大家分享了jQuery Ajax实现下拉框无刷新联动的具体代码,供大家参考,具体内容如下 HTML代码: @{ Layout = null; } @using DAL; @using Sys ...

  8. xml解析新浪新闻_客户端_下拉刷新

    关于选择哪种xml库解析http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-projec ...

  9. jquery ajax下拉联动,jQuery Ajax MVC 下拉框联动

    无刷新下拉框联动方法: Controllers代码 public JsonResult DH_Change(string DH_ID) { List TeamLeaderList = FinanceD ...

最新文章

  1. Python中的高阶函数reduce
  2. intellij中出現java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration解決方案
  3. STM32为何在诸多的单片机中脱颖而出?
  4. MySQL临时表(转)
  5. 手机端整张显示出来_现在动辄就4500万像素,像素越高显示效果真的越好吗?...
  6. 【分享】如果我没有那么优秀,我研究生阶段选择机器学习方向还有出路吗?...
  7. Coursera机器学习week11 笔记
  8. win7 计算机定时关机脚本,win7定时关机命令是什么 如何设置定时关机【图解】...
  9. C语言程序设计预备作业
  10. 史上超级详细:银行外包java面试题目
  11. STM32F103C8T6在Arduino框架下驱动SH1106 1.3“ IIC OLED显示
  12. UITextField 的左视图 --用户名和密码框的标志
  13. ZYNQ PS部分简介
  14. Web前端开发入门教程,HTML5+CSS3+JS教程,达到web前端工程师的水平
  15. 计算机应用蘑菇丁周报,蘑菇钉周记(共10篇)
  16. rails中使用rjs
  17. 横幅广告(2)admob
  18. 2019校招面经大汇总
  19. K8S集群部署kube-Prometheus监控Ceph(版本octopus)集群、并实现告警。
  20. Ubuntu18.04分辨率只有1024*768的多种解决办法

热门文章

  1. python绘制散点图的函数_python绘制散点图
  2. sqlserver201无效的许可证书_sql提示无效数字
  3. win10创建mysql数据库吗_win10 sqlite3创建的数据库文件在哪
  4. 汇率兑换 双向兑换_常出国的你一定要看:如何兑换外币最省钱?
  5. c++优先队列小节(常常弄混)
  6. java ztree_ztree简介_动力节点Java学院整理
  7. Toolbar的简单使用和封装
  8. pyecharts实现多节点、长路径的sankey桑基图
  9. Rational Rose 逆向工程(java) 常见问题二则
  10. 【C#】CLR内存那点事(string)