省市二级联动小案例讲解


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 相关文章推荐
用jquery实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
表单JS弹出填写提示效果代码
Apr 16 Javascript
JS继承--原型链继承和类式继承
Apr 08 Javascript
jQuery编程中的一些核心方法简介
Aug 14 Javascript
原生js实现鼠标跟随效果
Feb 28 Javascript
angularjs+bootstrap菜单的使用示例代码
Mar 07 Javascript
jQuery图片瀑布流的简单实现代码
Mar 15 Javascript
Node.js搭建WEB服务器的示例代码
Aug 15 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
Oct 01 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
Apr 28 Javascript
JavaScript实现轮播图片完整代码
Mar 07 Javascript
jquery实现简易验证插件封装
Sep 13 jQuery
基于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
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
php+mysql数据库查询实例
2015/01/21 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
extjs 为某个事件设置拦截器
2010/01/15 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
详细讲解Python中的文件I/O操作
2015/05/24 Python
python友情链接检查方法
2015/07/08 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
eBay奥地利站:eBay.at
2019/07/24 全球购物
理货员的岗位职责
2013/11/23 职场文书
毕业自荐书
2013/12/09 职场文书
园林技术个人的自我评价
2014/01/08 职场文书
档案检查欢迎词
2014/01/13 职场文书
创优争先心得体会
2014/09/11 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
暑期实践个人总结
2015/03/06 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
Python基础之元编程知识总结
2021/05/23 Python