php原生态三级联动_ajax php实现三级联动的方法

ajax php实现三级联动的方法

发布时间:2020-08-19 09:34:43

来源:亿速云

阅读:106

作者:小新

小编给大家分享一下ajax php实现三级联动的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!ajax php实现三级联动的方法:首先创建一个test数据库并创建三张表;然后初始化所有的省份;接着把当前的省份id通过ajax发出请求传递到服务端的程序中;最后查询数据库并进行必要的处理显示即可。

b3996da52e2c835b791f72330514374b.png

案例涉及到数据库,数据库设计如下:

首先创建一个test数据库,内容如下:CREATE TABLE IF NOT EXISTS `province` (

`province_id` int(2) NOT NULL AUTO_INCREMENT,

`province_name` varchar(20) NOT NULL,

PRIMARY KEY (`province_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

INSERT INTO `province` (`province_id`, `province_name`) VALUES

(1, '安徽'),

(2, '浙江');

CREATE TABLE IF NOT EXISTS `city` (

`city_id` int(4) NOT NULL AUTO_INCREMENT,

`city_name` varchar(20) NOT NULL,

`province_id` int(4) NOT NULL,

PRIMARY KEY (`city_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

INSERT INTO `city` (`city_id`, `city_name`, `province_id`) VALUES

(1, '合肥', 1),

(2, '安庆', 1),

(3, '南京', 2),

(4, '徐州', 2);

CREATE TABLE IF NOT EXISTS `county` (

`county_id` int(4) NOT NULL AUTO_INCREMENT,

`county_name` varchar(20) NOT NULL,

`city_id` int(4) NOT NULL,

PRIMARY KEY (`county_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

INSERT INTO `county` (`county_id`, `county_name`, `city_id`) VALUES

(1, '怀宁', 2),

(2, '望江', 2),

(3, '肥东', 1),

(4, '肥西', 1);

对数据库说明:我创建了三张表,分别是省(province),市(city),县(county),插入了几条测试数据,当然你也可以设计一张表,效率当然没一张表好,所以不建议使用,看你个人习惯。

实现过程并不是很难,思路如下:

1) 初始化所有的省份,这个可以直接从数据库中查询出来省份2)当用户选择省份的时候触发事件,把当前的省份的id通过ajax发出请求传递到服务端的程序中3)服务端根据客户端的请求,查询数据库,并按照一定的格式返回给客户端4)客户端获取服务端的数据,进行必要的处理显示出来

创建select.php(代码简陋,只是实现功能而已,说明原理即可!)1

2

3

4

三级联动(作者:mckee - www.phpddt.com)

5

6

7 function createAjax(){

8 var xmlHttp = false;

9 if (window.XMLHttpRequest){

10 xmlHttp = new XMLHttpRequest();

11 }else if(window.ActiveXObject){

12 try{

13 xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

14 }catch(e){

15 try{

16 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

17 }catch(e){

18 xmlHttp = false;

19 }

20 }

21 }

22 return xmlHttp;

23 }

24

25 var ajax = null;

26 function getCity(province_id){

27 ajax = createAjax();

28 ajax.onreadystatechange=function(){

29 if(ajax.readyState == 4){

30 if(ajax.status == 200){

31 var cities = ajax.responseXML.getElementsByTagName("city");

32 $('city').length = 0;

33 var myoption = document.createElement("option");

34 myoption.value = "";

35 myoption.innerText = "--请选择城市--";

36 $('city').appendChild(myoption);

37 for(var i=0;i

38 var city_id = cities[i].childNodes[0].childNodes[0].nodeValue;

39 var city_name = cities[i].childNodes[1].childNodes[0].nodeValue;

40 var myoption = document.createElement("option");

41 myoption.value = city_id;

42 myoption.innerText = city_name;

43 $('city').appendChild(myoption);

44 }

45 }

46 }

47 }

48

49 ajax.open("post","selectPro.php",true);

50 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

51 ajax.send("province_id="+province_id);

52

53 }

54

55 function getCounty(city_id){

56 ajax = createAjax();

57 ajax.onreadystatechange=function(){

58 if(ajax.readyState == 4){

59 if(ajax.status == 200){

60

61 var cities = ajax.responseXML.getElementsByTagName("county");

62 $('county').length = 0;

63 var myoption = document.createElement("option");

64 myoption.value = "";

65 myoption.innerText = "--请选择县--";

66 $('county').appendChild(myoption);

67 for(var i=0;i

68 var city_id = cities[i].childNodes[0].childNodes[0].nodeValue;

69 var city_name = cities[i].childNodes[1].childNodes[0].nodeValue;

70 var myoption = document.createElement("option");

71 myoption.value = city_id;

72 myoption.innerText = city_name;

73 $('county').appendChild(myoption);

74 }

75 }

76 }

77 }

78 ajax.open("post","selectPro.php",true);

79 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

80 ajax.send("city_id="+city_id);

81 }

82

83 function $(id){

84 return document.getElementById(id);

85 }

86

87

88

89

90

91

92 -- 请选择省份--

93 <?php

94 $conn = mysql_connect("localhost","root","");

95 mysql_select_db("test");

96 mysql_query("set names utf8");

97 $sql = "select * from province";

98 $result = mysql_query( $sql );

99 while($res = mysql_fetch_assoc($result)){

100 ?>

101 <?php echo $res['province_name']?>

102 <?php

103 }

104 ?>

105

106

107

108 --请选择城市--

109

110

111

112 --请选择县--

113

114

115

116

创建selectPro.php页面:117 <?php

118 //禁止缓存(www.phpddt.com原创)

119 header("Content-type:text/xml; charset=utf-8");

120 header("Cache-Control:no-cache");

121 //数据库连接

122 $conn = mysql_connect("localhost","root","");

123 mysql_select_db("test");

124 mysql_query("set names utf8");

125

126 if(!empty($_POST['province_id'])){

127

128 $province_id = $_POST['province_id'];

129 $sql = "select * from city where province_id = {$province_id}";

130 $query = mysql_query($sql);

131 $info = "";

132 while($res = mysql_fetch_assoc($query)){

133 $info .= "";

134 $info .= "".$res['city_id']."";

135 $info .= "".$res['city_name']."";

136 $info .= "";

137 }

138 $info .= "";

139 echo $info;

140 }

141

142 if(!empty($_POST['city_id'])){

143

144 $city_id = $_POST['city_id'];

145 $sql = "select * from county where city_id = {$city_id}";

146 $query = mysql_query($sql);

147 $info = "";

148 while($res = mysql_fetch_assoc($query)){

149 $info .= "";

150 $info .= "".$res['county_id']."";

151 $info .= "".$res['county_name']."";

152 $info .= "";

153 }

154 $info .= "";

155 echo $info;

156 }

157 ?>

看完了这篇文章,相信你对ajax php实现三级联动的方法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Terraform创建托管版Kubernetes

目前&#xff0c;阿里云容器服务已经可以创建托管版 Kubernetes 集群了。相比于默认的 Kubernetes 集群&#xff0c;托管版本会主动替您运维一套高可用的 Master 组件&#xff0c;免去了默认版本集群中三个 Master ECS 节点&#xff0c;从而节约所需的资金成本及维护时的人力成…

确认! Python夺冠,Java“被迫”退出竞争舞台,网友:崩溃!

2019年转眼已经接近尾声&#xff0c;如果盘点下2019年最火的语言&#xff0c;除了Python还能有谁&#xff1f;你心中的王者语言又是谁&#xff1f;这一年Python风光无限这一年JAVA走向右边这一年&#xff0c;我们都很感慨&#xff0c;你呢&#xff1f;关于Python&#xff0c;编…

阿里专家梁笑:2018双十一下单成功率99.9%!供应链服务平台如何迎接大促

本篇文章来自于2018年12月22日举办的《阿里云栖开发者沙龙—Java技术专场》&#xff0c;梁笑专家是该专场第一位演讲的嘉宾&#xff0c;本篇文章是根据梁笑专家在《阿里云栖开发者沙龙—Java技术专场》的演讲视频以及PPT整理而成。 摘要&#xff1a;2018年双十一平稳度过&#…

php inputcsv,php excel格式(csv)数据导入导出(示例)

需要把大量数据导入数据库中&#xff0c;比如考试成绩、电话簿等一般都是存放在excel中的数据&#xff0c;可以考虑把excel导出成csv文件。然后&#xff0c;通过以下程序即可批量导入数据到数据库中&#xff0c;上传csv并导入到数据库中&#xff0c;测试成功。代码&#xff1a;…

首次公开!《阿里计算机视觉技术精选》揭秘前沿落地案例

当下计算机视觉技术无疑是AI浪潮中最火热的议题之一。视觉技术的渗透&#xff0c;既可以对传统商业进行改造使之看到新的商业机会&#xff0c;还可以创造全新的商业需求和市场。无论在电商、安防、娱乐&#xff0c;还是在工业、医疗、自动驾驶领域&#xff0c;计算机视觉技术都…

阿里程序员常用的 15 款开发者工具

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | Linux技术责编 | 阿秃从人工到自动化&#xff0c;从重复到创新&#xff0c;技术演进的历程中&#xff0c;伴随着开发者工具类产品的发展。阿里巴巴将自身在各类业务场景下的技术积淀&#xff0c;通过开源、云上实现或工具等形…

一文深度解读阿里云CDN实时日志的前世今生:挖掘实时数据的无限价值

阿里云CDN实时日志服务可以将CDN采集的日志&#xff0c;秒级的交付给用户, 并且可以对采集到的日志进行实时、交互式分析和报表呈现&#xff0c;为监控、报警、渠道分析、运营分析提供实时、可靠的数据参考&#xff0c;让用户远离锁事&#xff0c;专注数据价值。 12月26日&…

linux php生产环境搭建,linux php 环境搭建

安装所需环境一. gcc 安装安装 nginx 需要先将官网下载的源码进行编译&#xff0c;编译依赖 gcc 环境&#xff0c;如果没有 gcc 环境&#xff0c;则需要安装&#xff1a;yum install gcc-c二. PCRE pcre-devel 安装PCRE(Perl Compatible Regular Expressions) 是一个Perl库&…

推荐系统之信息茧房问题

什么是信息茧房 信息茧房其实是现在社会一个很可怕的现象&#xff0c;从字面意思来看的话其实比喻的是信息被虫茧一般封锁住。这个问题反映了现在随着个性化推荐的普及衍射的一个社会问题。 平时在浏览新闻或者淘宝的时候&#xff0c;平台会自动根据用户的浏览记录获取用户的…

【快讯】阿里云张建锋:数据成为经济发展的新生产要素

在2019阿里云广东峰会上&#xff0c;阿里云智能总裁张建锋表示&#xff0c;全面迈入数字经济时代&#xff0c;数据成为社会经济发展的新生产要素&#xff0c;云智能是新基础设施。 “数字经济时代&#xff0c;最大的不一样是有一种新的生产要素是数据。”张建锋表示&#xff0c…

Flutter Exception降到万分之几的秘密

1. flutter exception 闲鱼技术团队于2018年上半年率先引入了Flutter技术实现客户端开发&#xff0c;到目前为止成功改造并上线了复杂的商品详情和发布业务。随着flutter比重越来越多&#xff0c;我们开始大力治理flutter的exception,起初很长一段时间内闲鱼内flutter的except…

mac vim php 颜色,mac vim 配色

syntax onset nuset noicset t_Co256set tabstop4set nocompatibleset shiftwidth4set softtabstop4set backspace2set autoindentset expandtabset smartindentset hlsearch"状态栏显示当前执行的命令set showcmd"粘贴时保持格式set paste"允许使用鼠标点击定位…

云栖专辑 | 阿里开发者们的第6个感悟:享受折磨

2015年12月20日&#xff0c;云栖社区上线。2018年12月20日&#xff0c;云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来&#xff0c;寒冬中&#xff0c;最值得投资的是学习&#xff0c;是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的…

事务专栏

事务用法&#xff1a; 写一个配置类 EnableTransactionManagement Configuration public class TransactionManagementConfig {}在需要事物的方法上添加 Transactional注解即可&#xff0c; 特殊场景&#xff1a;注解也加了为什么还是不生效&#xff0c; 建议&#xff0c; 1&g…

推荐算法 php SQL,MixPHP 独特的SQL构建方式

独特的SQL构建方式MixPHP 对CUD这些写操作都有专用方法&#xff0c;可快速构建&#xff0c;使用方法也与 Yii2 完全一至&#xff0c;而R操作完全不一样&#xff0c;MixPHP 发明了一种新奇的构造方式&#xff0c;非常简单的方式&#xff0c;在定义复杂查询时&#xff0c;可使 SQ…

2019年人工智能硬件与应用大趋势

2019年即将到来&#xff0c;人工智能将往什么方向发展&#xff1f;机器学习将如何演变为人工智能&#xff1f;在神经网络领域具有20年的技术经验Eugenio Culerciello&#xff0c;在硬件和软件两方面都有经验积累。他预测&#xff0c;在硬件和应用两方面&#xff0c;2019年的人工…

阿里专家杜万:Java响应式编程,一文全面解读

本篇文章来自于2018年12月22日举办的《阿里云栖开发者沙龙—Java技术专场》&#xff0c;杜万专家是该专场第四位演讲的嘉宾&#xff0c;本篇文章是根据杜万专家在《阿里云栖开发者沙龙—Java技术专场》的演讲视频以及PPT整理而成。 摘要&#xff1a;响应式宣言如何解读&#xf…