省市二级联动小案例讲解


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 相关文章推荐
网页中可关闭的漂浮窗口实现可自行调节
Aug 20 Javascript
用JS将搜索的关键字高亮显示实现代码
Nov 08 Javascript
从零学JSON之JSON数据结构
May 19 Javascript
处理文本部分内容的TextRange对象应用实例
Jul 29 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
Jan 19 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
jQuery中extend函数简单用法示例
Oct 11 jQuery
JS运动特效之任意值添加运动的方法分析
Jan 24 Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 Javascript
vue基于两个计算属性实现选中和全选功能示例
Feb 08 Javascript
vscode中eslint插件的配置(prettier配置无效)
Sep 10 Javascript
小程序实现tab标签页
Nov 16 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数据库备份类
2008/03/20 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
innerText 使用示例
2014/01/23 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
Javascript实现一朵从含苞到绽放的玫瑰
2019/03/30 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
Python网站验证码识别
2016/01/25 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
python调用c++传递数组的实例
2019/02/13 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
Linux常见面试题
2013/03/18 面试题
财务会计专业应届毕业生求职信
2013/10/18 职场文书
英语专业毕业生自荐信
2013/10/28 职场文书
劳动实践课感言
2014/02/01 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
2014年销售经理工作总结
2014/12/01 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
小学生节水倡议书
2015/04/29 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python