省市二级联动小案例讲解


Posted in Javascript onJuly 24, 2016

在网页开发过程中,选择省市的时候,省市之间有关联,这是一个小小的二级联动案例 ,运用到HTML、css、php、js以及

AJAX的异步请求

首先建立city.php和province.php文件和connet.html,将二级联动的大概结构写出来,html代码如下:

<label>省份:</label>
<select id="province">
<option>请选择</option>
</select>
<label>城市:</label>
<select id="city">

<option>请选择</option>
</select>

js代码以及ajax请求如下:

<script>
// 通过Ajax从服务器端获取数据
var provinceElement = document.getElementById("province");
window.onload = function(){
// 创建核心对象
var xhr = getXhr();
// 监听

xhr.onreadystatechange = function(){

if(xhr.readyState == 4 && xhr.status == 200){
//吉林省,辽宁省,山东省

var data = xhr.responseText;
// 处理数据

var arr = data.split(',');

for(var i=0;i<arr.length;i++){
// <option>请选择</option>

var opt = document.createElement("option");

var text = document.createTextNode(arr[i]);

opt.appendChild(text);

provinceElement.appendChild(opt);
}
}
}
// 建立连接

xhr.open("get","province.php");
// 发送数据

xhr.send(null);
}
// 2. 用户选择不同的省份
provinceElement.onchange = function(){
// a. 清除城市列表
var cityElement = document.getElementById("city");
var opts = cityElement.getElementsByTagName("option");
for(var i=1;i<opts.length;i++){
cityElement.removeChild(opts[i]);
i--;
}
// b. 得到用户选择的值(省份)
var provinceValue = this.value;

if(provinceValue == "请选择"){

return false;
}
// c. 通过Ajax根据省份获取城市
var xhr = getXhr();
xhr.open("post","city.php");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("province="+provinceValue);
xhr.onreadystatechange = function(){

if(xhr.readyState == 4 && xhr.status == 200){

var data = xhr.responseText;

var arr = data.split(",");

for(var i=0;i<arr.length;i++){
// <option>城市</option>

var opt = document.createElement("option");

var text = document.createTextNode(arr[i]);

opt.appendChild(text);

cityElement.appendChild(opt);
}
}
}
}
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject("Microsoft.XMLHttp");
}
return xhr;
}
</script>
province.php代码如下:
<?php
// 将省份信息进行响应
echo '吉林省,辽宁省,山东省';
?>

city.php代码如下:

<?php
// 1. 接收客户端的请求数据
$province = $_POST['province'];
// 2. 根据省份的不同,提供不同的城市
switch ($province){
case '吉林省':
echo '长春市,松原市,白山市,通化市,辽源市';
break;
case '辽宁省':
echo '沈阳市,大连市,锦州市,铁岭市,丹东市';
break;
case '山东省':
echo '济南市,青岛市,威海市,日照市,德州市';
break;
}

最终的界面图如下:

省市二级联动小案例讲解

以上所述是小编给大家介绍的省市二级联动小案例,希望对大家有所帮助,如果大家想了解更多内容,敬请关注三水点靠木!

Javascript 相关文章推荐
编辑浪子版表单验证类
May 12 Javascript
JS 去前后空格大全(IE9亲测)
Jul 15 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
Aug 05 Javascript
cookie中的path与domain属性详解
Dec 18 Javascript
javascript实现在网页中运行本地程序的方法
Feb 03 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
Nov 10 Javascript
AngularJS使用拦截器实现的loading功能完整实例
May 17 Javascript
webpack中使用iconfont字体图标的方法
Feb 22 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
Sep 26 Javascript
json.stringify()与json.parse()的区别以及用处
Jan 25 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
Jul 24 #Javascript
js简单实现调整网页字体大小的方法
Jul 23 #Javascript
jquery实现ajax加载超时提示的方法
Jul 23 #Javascript
数据结构中的各种排序方法小结(JS实现)
Jul 23 #Javascript
js的各种排序算法实现(总结)
Jul 23 #Javascript
js事件驱动机制 浏览器兼容处理方法
Jul 23 #Javascript
javaScript事件机制兼容【详细整理】
Jul 23 #Javascript
You might like
ucenter通信原理分析
2015/01/09 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
laravel 数据验证规则详解
2019/10/23 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
jquery 模板的应用示例
2013/11/12 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
Node.js学习入门
2017/01/03 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
详解VueJs中的V-bind指令
2018/05/03 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
CSS3实现时间轴特效
2020/11/02 HTML / CSS
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
能源工程专业应届生求职信
2014/03/01 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python
MySQL 原理与优化之Update 优化
2022/08/14 MySQL