省市二级联动小案例讲解


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 相关文章推荐
javascript 冒泡排序 正序和倒序实现代码
Dec 14 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
Nov 23 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
javascript关于运动的各种问题经典总结
Apr 27 Javascript
jquery实现简单的全选和反选功能
Jan 02 Javascript
JS中的==运算: [''] == false —&gt;true
Jul 24 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
Aug 30 Javascript
基于js文件加载优化(详解)
Jan 03 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
Feb 13 jQuery
解决vue 路由变化页面数据不刷新的问题
Mar 13 Javascript
es6数据变更同步到视图层的方法
Mar 04 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
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
jquery弹出框的用法示例(2)
2013/08/26 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
详解JS面向对象编程
2016/01/24 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
python安装以及IDE的配置教程
2015/04/29 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
详解python里的命名规范
2018/07/16 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
幼师自荐信范文
2013/10/06 职场文书
大学旷课检讨书
2014/01/28 职场文书
酒店管理毕业生自我鉴定
2014/03/02 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
毕业大学生自荐信
2014/06/17 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
中学生学习保证书
2015/02/26 职场文书