省市二级联动小案例讲解


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作用域容易记错的两个地方分析
Jun 22 Javascript
javascript遇到html5的一些表单属性
Jul 05 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
Dec 16 Javascript
jQuery实现图片走马灯效果的原理分析
Jan 16 Javascript
AngularJS身份验证的方法
Feb 17 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
微信小程序如何获取openid及用户信息
Jan 26 Javascript
策略模式实现 Vue 动态表单验证的方法
Sep 16 Javascript
Vue项目打包部署到iis服务器的配置方法
Oct 14 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
Oct 31 Javascript
基于Vant UI框架实现时间段选择器
Dec 24 Javascript
react-native 实现购物车滑动删除效果的示例代码
Jan 15 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验证码函数代码(简单实用)
2013/09/29 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
PHP内置加密函数详解
2016/11/20 PHP
php文件上传类的分享
2017/07/06 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
深入浅析python 中的匿名函数
2018/05/21 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
校本教研活动总结
2014/07/01 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
学习经验交流会策划书
2015/11/02 职场文书
人身损害赔偿协议书
2016/03/22 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android