多级联动系列——ajax调用XML实现三级联动
ajax 使用起来特别的方便,再也不操心浏览器兼容问题了。用ajax调用XML页面中的内容,来生成三级联动,OK废话不多说,跟着我一步步写吧。
首先写一个XML文件。data.xml
<?xml version="1.0" encoding="UTF-8"? >
<list>
<province name="河南" id='1'>
<city name="焦作" id='11'>
<area id='111'>武陟</area>
<area id='112'>博爱</area>
<area id='113'>修武</area>
</city>
<city name="郑州" id='12'>
<area id='121'>金水区</area>
<area id='122'>二七区</area>
<area id='123'>中原区</area>
</city>
</province>
<province name="河北" id='2'>
<city name="石家庄" id='21'>
<area id='211'>赵县</area>
<area id='212'>正定</area>
<area id='213'>平山</area>
</city>
<city name="承德" id='22'>
<area id='221'>围场</area>
<area id='222'>丰宁</area>
<area id='223'>隆化</area>
</city>
</province>
<province name="山东" id='3'>
<city name="青岛" id='31'>
<area id='311'>李沧</area>
<area id='312'>崂山</area>
<area id='313'>黄岛</area>
</city>
<city name="日照" id='32'>
<area id='321'>东港</area>
<area id='322'>岚山</area>
<area id='323'>五莲</area>
</city>
</province>
</list>
然后就要用ajax调用XML 生成三级联动 了
以下是代码部分
<!DOCTYPE html>
<html>
<head>
<title>八部天龙</title>
<meata http-equiv="contetn-type" content="text/html;charset=utf-8" />
<script type="text/javascript" src="./jquery/jquery.js"></script>
<script type="text/javascript">
var xnlOb;
$(document).ready(function(){
$.get("data.xml",null,funciton(re){
xmlOb=$(re);//把文档对象转化为选择器对象
//開始获取全部的province标签
var pOb=xmlOb.find("province");
var pName,pId;
$("[name='province']").append("<option value='0'>请选择</option>");
pOb.each(function(){
pName=$(this).attr('name');
//alert(pName);
pId=$(this).attr('id');
$("[name='province']").append("<option value='"+pId+"'>"+pName+"</option>");
})
},'xml');
})
function getCity(){
//首先获取选择的省份的名字 一级分类中
var pValue=$("[name='province']>:selected").text();
$("[name='city']").empty();//清空是为了防止多选几次出现的多次加入反复内容
$("[name='city']").append("<option value='0'>请选择</option>");
//然后接着找省下的城市
xmlOb.find("province[name='"+pValue+"']").find("city").each(function(){
$("[name='city']").append("<option value='"+$(this).attr('id')+"'>"+$(this).attr('name')+"</option>");
});
}
function getArea(){
var cValue=$("[name='city']>:selected").text();
$("[name='area']").empty();
$("[name='area']").append("<option value='0'>请选择</option>");
//接着去XML中找市以下的县(区)
xnlOb.find("city[name='"+cValue+"']").find('area').each(function(){
$("[name='area']").append("<option value='"+$(this).attr('id')+"'>"+$(this).text()+"</option>");
});
}
</script>
<body>
<select name="province" onchange="getCity();"></select>
<select name="city" onchange="getArea();"></select>
<select name="area"></select>
</body>
</head>
</html>
OK。就是这种。
依据这个三级联动。能够扩展N级联动。
原理都是一样的。
好了,就到这里了。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGhwNTkyMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
多级联动系列——ajax调用XML实现三级联动的更多相关文章
- 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下 ...
- 用php+mysql+ajax+jquery做省市区三级联动
要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用chinastates ...
- 【2017-06-06】Ajax完整结构、三级联动的制作
一.Ajax完整结构 $.ajax({ url:"Main.ashx", data:{}, dataType:"json", type:"post&q ...
- ajax练习习题二三级联动
异步执行 1数据传输收发数据的时候不用等待对方接受,可以继续发送 2Ajax 在调用处理页面处理数据的时候,下面的代码可以继续执行,效率高 同步执行 1收发数据的时候要等到对方接受的成功,才可以继续发 ...
- ajax加php实现三级联动
js代码 <script type="text/javascript"> function get_next(t,pid){ //当前元素的id,当前optio ...
- 如何用jquery+ajax写省市区的三级联动?(封装和不封装两种方式)-----2017-05-14
首先,要实现如下图效果, 1.要理清思路: 先做出三个下拉菜单----根据第一个下拉菜单的value值获取第二个下拉列表的内容,第三个同理. 2.用到的数据库表:Chinastates表 规律:根据国 ...
- Ajax做无刷新三级联动
1.引入JS and Jquery包 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- ajax 城市区域选择三级联动
<body onLoad="sheng()"><div class="xqbody"> <form action=" ...
- Ajax省市地区下拉列表三级联动
SQL数据库表 --创建Province表 CREATE TABLE [dbo].[Province]( [Id] [int] NULL, [Name] [varchar](50) NULL, [or ...
随机推荐
- ACM_绝对值排序
Why Males And Females Apart? Time Limit: 2000/1000ms (Java/Others) Problem Description: In so many o ...
- 题解报告:hdu 2149 Public Sale(巴什博弈)
题目链接:acm.hdu.edu.cn/showproblem.php?pid=2149 Problem Description 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没 ...
- 342 Power of Four 4的幂
给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂.示例:当 num = 16 时 ,返回 true . 当 num = 5时,返回 false.问题进阶:你能不使用循环/递归来解 ...
- JavaScript:常用总结
● 语法要点 ● 引用类型 ● BOM/DOM ● 事件要点 一.语法要点 1.在声明变量时,如果省去了var关键字,那么这个变量为全局变量. 2.数据类型有5种原始类型和9种引用类型: 原始类型中: ...
- DeadObjectException
开发的过程中有时候会遇到DeadObjectException,说明系统service已经停止运行,解决的方式是在mainfistxml的application标签中添加android:hardwar ...
- Less——less基本使用
基本概况 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充.Less 可以运行在 Node.浏览器 ...
- 调用.NET Serviced Component引发的性能问题及其解决
在企业用户环境里,.NET Serviced Component使用广泛.它比较好的把传统COM+封装和.NET应用逻辑衔接了起来,在服务器端应用起到重要作用..NET Serviced Compon ...
- 循环语句和方法(day4)
- js的一些老司机写法
//取整 parseInt(a,10); //Before Math.floor(a); //Before a>>0; //Before ~~a; //After a|0; //After ...
- Python3:numpy模块中的argsort()函数
Python3:numpy模块中的argsort()函数 argsort函数是Numpy模块中的函数: >>> import numpy >>> help(nu ...