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年双十一平稳度过&#…

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

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

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

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

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

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

推荐系统之信息茧房问题

什么是信息茧房 信息茧房其实是现在社会一个很可怕的现象&#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个弥足珍贵的…

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

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

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

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

日站会——你的站会姿势正确吗?

今天我们讲讲如何利用站会&#xff0c;更好地实现促进团队有效协作和聚焦&#xff0c;促进价值顺畅流动和交付&#xff0c;同时及时的暴露问题和风险。 站会的目标 说到站会&#xff0c;人们最熟悉的Scrum站会&#xff0c;典型的形式是团队围成一圈&#xff0c;依次回答三个问…

TableStore实战:DLA+SQL实时分析TableStore

一、实战背景 什么是DLA&#xff08;DataLake Analytics数据湖&#xff09;&#xff1f;他是无服务器化&#xff08;Serverless&#xff09;的云上交互式查询分析服务。作为分布式交互式分析服务&#xff0c;是表格存储计算生态的重要组成之一。为了使用户更好的了解DLA的功能…

云栖专辑 | 阿里开发者们的第8个感悟:在信息大爆炸的时代,保持专注度显得尤为可贵

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

手机秒变IoT设备?——巧妙利用阿里云物联网平台

什么&#xff1f;嵌入五行代码可以实现用户定位&#xff0c;用户在线数量统计&#xff0c;还能和云端消息交互&#xff01; 没错得益于阿里云物联网套件创建设备免费&#xff0c;消息收费也只有百万消息三块六&#xff08;先使用后付费&#xff0c;不满不要钱&#xff09;&…