AJAX的核心是JavaScript对象XMLHttpRequest。是一种异步请求的技术,不用刷新整个页面就可以与服务器进行交互。本文就以二级联动下拉列表为例:

获取AJAX对象js代码:

function createAJAX(){var ajax = null;try{ajax = new ActiveXObject("microsoft.xmlhttp");}catch(e1){try{ajax = new XMLHttpRequest();}catch(e2){alert("浏览器不支持ajax");}}return ajax;
}

JavaScript与jsp代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>二级联动下拉列表</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;var index = this.selectedIndex;var optionElement = this[index];var province = optionElement.innerHTML;if ("选择省份" != province) {//【1】获取ajax异步对象var ajax = createAJAX();var method = "POST";var url = "${pageContext.request.contextPath}/ListBoxServlet?time = "+ new Date().getTime();ajax.open(method, url);//【2】设置请求头ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");//【3】var content = "province=" + province;ajax.send(content);//---------------------------------------//【4】匿名函数ajax.onreadystatechange = function() {if (ajax.readyState == 4) {if (ajax.status == 200) {//【5】从响应中获取xml文档var xmlDocument = ajax.responseXML;//按照DOM规则,解析xml文档var cityElementArray = xmlDocument.getElementsByTagName("city");var size = cityElementArray.length;for (var i = 0; i < size; i++) {//获取城市标签中的城市名称var city = cityElementArray[i].firstChild.nodeValue;//创建标签,并对标签内容进行赋值var optionElement = document.createElement("option");optionElement.innerHTML = city;cityElement.appendChild(optionElement);}}}}}}</script></body>
</html>

Servlet代码:

package com.xpeng.servlet;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;public class ListBoxServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}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/xpeng-V/p/7349674.html

AJAX之二级联动下拉列表相关推荐

  1. ajax下拉框二级联动 php,关于thinkphp 与 ajax 实现二级联动下拉列表

    表的结构 cId 分类id cName 分类名称 gid 父级id 这是我的HTML页面 <volist name="rs" id="val"> & ...

  2. php下拉列表 二级 联动,PHP+Ajax实现二级联动下拉菜单!

    正文 字体大小: 中 PHP+Ajax实现二级联动下拉菜单! (2009-12-05 01:11:39) 标签: 杂谈 数据库 .................................... ...

  3. php js 二级联动_PHP+ajax实现二级联动菜单功能示例

    本文实例讲述了PHP+ajax实现二级联动菜单功能.分享给大家供大家参考,具体如下: 如何实现二级联动 工作原理 二级联动在开发中是比较常见的一个技术点,它主要运用了JS的局部刷新技术ajax,不同于 ...

  4. jquery php联动,jQuery结合PHP+MySQL实现二级联动下拉列表[实例]

    jQuery结合PHP+MySQL实现二级联动下拉列表[实例] 实现原理:根据省份值的变动,通过jQuery把sf_id传给后台php文件处理,php通过查询MySQl数据库,得到对应的地市名,并返回 ...

  5. php mysql实现下拉列表查询_php+mysql实现二级联动下拉列表

    二级联动下拉列表(select),都是从数据库中取值,其中第二级为可多选列表(multiple).若要实现二级也是下拉菜单,可以将multiple改了即可. 全动态二级联动下拉列表 /******** ...

  6. php ajax二级联下拉菜单,ThinkPHP和Ajax 实现二级联动的下拉菜单

    这篇文章主要介绍了关于ThinkPHP和Ajax 实现二级联动的下拉菜单,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 联动菜单的数据存在数据库,可以随时通过对数据库添加删除修改改变菜 ...

  7. ajax实现二级联动

    用js实现简单的ajax二级联动(如上图) HTML代码: 1 省份:<select id="province" onchange="getCity();" ...

  8. web中ajax实现二级联动,Ajax实现城市二级联动(一)

    前一篇是把省份和城市都写在JS里,这里把城市放在PHP里,通过发送Ajax请求城市数据渲染到页面. 1.html 请选择 山东省 辽宁省 吉林省 请选择 2.javascript /* * 需要思考哪 ...

  9. Excel 轻松制作 二级联动 下拉列表清单

    在做二级联动过程中需要用到一个函数: INDIRECT() 返回文本字符串所指定的引用 语法 INDIRECT(ref_text,a1) Ref_text: 单元格引用,该引用所指向的单元格中存放有对 ...

最新文章

  1. 计算机小键盘 等号,小键盘上的 000 键
  2. java 枚举 或运算_Objective-C 枚举 中位运算 的使用
  3. oracle对sga统计信息不对,关于oracle sga设置的总结,很经典--转
  4. 题目1009:二叉搜索树
  5. php正则 贪婪模式与懒惰模式
  6. Pixhawk代码分析-准备
  7. Windows sever 2008 动态硬盘数据恢复
  8. 接口隔离原则原理讲解-coding
  9. sd卡linux错误检测,android系统正在准备SD卡正在检测是否有错误且SD卡无法读取解决办法...
  10. 关于c#中全局类变量的建立
  11. 深度可分离卷积(Xception 与 MobileNet)
  12. python中打开文件时只允许写入的模式是_在open函数中访问模式参数使用()表示打开一个文件只用于写入。(4.0分)_学小易找答案...
  13. php class 直接,PHP类(Class)入门教程
  14. win10远程计算机或设备将不接收连接?
  15. Unmapped Spring configuration files found.
  16. android手机紧急快捷键,常用手机指令(手机快捷键)及呼叫转移快捷指令
  17. Python实例之利用h5py库保存数据集
  18. 【数值模型系列】link_grib.csh脚本解读
  19. 通过谷歌骇客语法搜索后台:_Google骇客:以不寻常的方式使用Google的六大技巧...
  20. scrapy过滤重复数据和增量爬取

热门文章

  1. c语言复杂万年历带农历,带农历及农历纪念日的万年历c程序
  2. 计算机主机一会运行一会又停止,电脑运行一会自动重启
  3. 软件设计模式之(二)装饰者模式
  4. 漏洞发掘技术,思路解析
  5. 企业数字化转型,为何 SaaS 模式如此重要?
  6. Ubuntu 系统 文件的颜色代表的意义
  7. VS2005:error PRJ0002
  8. TogetherEC 6.3审计功能简单中文注解
  9. 30岁前男人需要完成的事(太经典了,不得不转)
  10. 安装Gitblit 服务器版本