Ajax实现城市二级联动(三)
发布时间 - 2026-01-10 23:09:46 点击率:次本文实例为大家分享了Ajax实现城市二级联动的具体代码,供大家参考,具体内容如下

这是Ajax实现城市二级联动系列文章第三篇,把之前2篇整合在一起
1、html
<select id="province"> <option>请选择</option> </select> <select id="city"> <option>请选择</option> </select>
2、javascript
//创建获取ajax核心对象的函数
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject("Microsoft.XMLHttp");
}
return xhr;
}
var xhr = getXhr();
// 第一次执行Ajax异步请求 - 省份
window.onload = function(){
xhr.open("get","finaly.php?state=1");
xhr.send(null);
xhr.onreadystatechange = function(){
if(xhr.readyState==4&&xhr.status==200){
var data = xhr.responseText;
// 将字符串转换为数组
var provinces = data.split(",");
// 遍历数组
for(var i=0;i<provinces.length;i++){
// 创建option元素添加到id为province元素上
var option = document.createElement("option");
var text = document.createTextNode(provinces[i]);
option.appendChild(text);
var province = document.getElementById("province");
province.appendChild(option);
}
}
}
};
// 第二次执行Ajax异步请求 - 城市
var province=document.getElementById("province");
province.onchange = function(){
var city = document.getElementById("city");
var opts = city.getElementsByTagName("option");
for(var z=opts.length-1;z>0;z--){
city.removeChild(opts[z]);
}
if(province.value != "请选择"){
xhr.open("post","finaly.php");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("state=2&province="+province.value);
xhr.onreadystatechange = function(){
if(xhr.readyState==4&&xhr.status==200){
var data = xhr.responseText;
var cities = data.split(",");
for(var i=0;i<cities.length;i++){
var option = document.createElement("option");
var text = document.createTextNode(cities[i]);
option.appendChild(text);
city.appendChild(option);
}
}
}
}
};
3、finaly.php
<?php
// 接收客户端发送的请求数据 - state
$state = $_REQUEST['state'];
// 判断$state的值
if($state == 1){// 获取省份
echo '山东省,辽宁省,吉林省';
}else{// 获取城市
$province = $_POST['province'];
switch ($province){
case '山东省':
echo '青岛市,济南市,威海市,日照市,德州市';
break;
case '辽宁省':
echo '沈阳市,大连市,铁岭市,丹东市,锦州市';
break;
case '吉林省':
echo '长春市,松原市,吉林市,通化市,四平市';
break;
}
}
?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Ajax
# 二级联动
# Ajax结合php实现二级联动
# Spring MVC中Ajax实现二级联动的简单实例
# jQuery+JSON实现AJAX二级联动实例分析
# AJAX解析XML实例之下拉框省、市二级联动
# ajax读取数据库内容实现二级联动下拉选择菜单示例
# Ajax二级联动菜单实现原理及代码
# asp.net下使用AjaxPro实现二级联动代码
# 基于asp+ajax和数据库驱动的二级联动菜单
# 一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)
# 请选择
# 吉林省
# 辽宁省
# 山东省
# 松原市
# 通化市
# 铁岭市
# 日照市
# 锦州市
# 德州市
# 丹东市
# 威海市
# 吉林市
# 长春市
# 大连市
# 这是
# 沈阳市
# 济南市
# 青岛市
# 遍历
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
高性价比服务器租赁——企业级配置与24小时运维服务
如何在搬瓦工VPS快速搭建网站?
如何快速建站并高效导出源代码?
Swift中swift中的switch 语句
Python并发异常传播_错误处理解析【教程】
如何用景安虚拟主机手机版绑定域名建站?
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
专业商城网站制作公司有哪些,pi商城官网是哪个?
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
如何用狗爹虚拟主机快速搭建网站?
晋江文学城电脑版官网 晋江文学城网页版直接进入
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
潮流网站制作头像软件下载,适合母子的网名有哪些?
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
香港网站服务器数量如何影响SEO优化效果?
Laravel如何为API编写文档_Laravel API文档生成与维护方法
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何选择可靠的免备案建站服务器?
如何选择PHP开源工具快速搭建网站?
网站制作壁纸教程视频,电脑壁纸网站?
Android自定义listview布局实现上拉加载下拉刷新功能
Laravel如何使用Blade组件和插槽?(Component代码示例)
jQuery validate插件功能与用法详解
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
Bootstrap整体框架之CSS12栅格系统
手机软键盘弹出时影响布局的解决方法
零服务器AI建站解决方案:快速部署与云端平台低成本实践
Android 常见的图片加载框架详细介绍
如何做网站制作流程,*游戏网站怎么搭建?
如何在万网主机上快速搭建网站?
香港服务器WordPress建站指南:SEO优化与高效部署策略
jQuery 常见小例汇总
如何用花生壳三步快速搭建专属网站?
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
如何用已有域名快速搭建网站?
如何续费美橙建站之星域名及服务?
如何在万网自助建站中设置域名及备案?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
黑客如何利用漏洞与弱口令入侵网站服务器?
如何基于PHP生成高效IDC网络公司建站源码?
Python数据仓库与ETL构建实战_Airflow调度流程详解
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何有效防御Web建站篡改攻击?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
C++用Dijkstra(迪杰斯特拉)算法求最短路径

