AJAX+PHP实现三级联动

利用ajax实现页面地区选择三级联动 效果图如下

当选择相应省份时,对应显示出所有相关城市和地区的下拉选择

来看下如何实现的

html页面部分

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../jquery-1.11.2.min.js"></script>
<script src="sanji.js"></script>
<title>无标题文档</title>
</head>

<body>
<h1>三级联动</h1>
<div id="sanji"></div>

</body>
</html>

 JS部分

 1 // JavaScript Document
 2 $(document).ready(function(e) {
 3     //找到ID=SANJI的DIV,造三个下拉扔进去
 4     $("#sanji").html("<select id=‘sheng‘></select><select id=‘shi‘></select><select id=‘qu‘></select>");
 5
 6     //加载省的数据
 7     LoadSheng();
 8     //加载市的数据
 9     LoadShi();
10     //加载区的数据
11     LoadQu();
12
13     //给省的下拉加点击事件
14     $("#sheng").click(function(){
15             //重新加载市
16             LoadShi();
17             //重新加载区
18             LoadQu();
19         })
20     //给市的下拉加点击事件
21     $("#shi").click(function(){
22             //重新加载区
23             LoadQu();
24         })
25
26 });
27 //加载省份的方法
28 function LoadSheng()
29 {
30     //省的父级代号
31     var pcode = "0001";
32     $.ajax({
33         async:false,
34         url:"chuli.php",
35         data:{pcode:pcode},
36         type:"POST",
37         dataType:"TEXT",
38         success: function(data){
39             var hang = data.trim().split("|");
40             var str = "";
41             for(var i=0;i<hang.length;i++)
42             {
43                 var lie = hang[i].split("^");
44                 str = str+"<option value=‘"+lie[0]+"‘>"+lie[1]+"</option>";
45             }
46             $("#sheng").html(str);
47         }
48     });
49 }
50 //加载市的方法
51 function LoadShi()
52 {
53     //找市的父级代号
54     var pcode = $("#sheng").val();
55     $.ajax({
56         async:false,
57         url:"chuli.php",
58         data:{pcode:pcode},
59         type:"POST",
60         dataType:"TEXT",
61         success: function(data){
62             var hang = data.trim().split("|");
63             var str = "";
64             for(var i=0;i<hang.length;i++)
65             {
66                 var lie = hang[i].split("^");
67                 str = str+"<option value=‘"+lie[0]+"‘>"+lie[1]+"</option>";
68             }
69             $("#shi").html(str);
70         }
71     });
72 }
73
74 //加载区的方法
75 function LoadQu()
76 {
77     //找区的父级代号
78     var pcode = $("#shi").val();
79     $.ajax({
80         url:"chuli.php",
81         data:{pcode:pcode},
82         type:"POST",
83         dataType:"TEXT",
84         success: function(data){
85             var hang = data.trim().split("|");
86             var str = "";
87             for(var i=0;i<hang.length;i++)
88             {
89                 var lie = hang[i].split("^");
90                 str = str+"<option value=‘"+lie[0]+"‘>"+lie[1]+"</option>";
91             }
92             $("#qu").html(str);
93         }
94     });
95 }

php数据处理页面

 1 <?php
 2 require "../DataBase.class.php";
 3 $db= new  DateBase();
 4 $parentid=$_POST["pcode"];
 5 $sql="select * from chinastates where parentareacode=‘{$pcode}‘";
 6 $arr=$db->query($sql);
 7 $str="";
 8 foreach ($arr as $v){
 9             $str.=implode("^",$v)."|";
10
11
12     }
13 $str=substr($str,0,strlen($str)-1);
14 echo $str;
15
16
17 ?>

可以将三级联动的JS文件作为一个插件,当以后需要三级联动效果时可以引入

引入方法 就是上面的HTML代码样式,将js在头信息中引入(放在引入jQuery文件之后),然后在body中写个div用来存放这个三级联动

时间: 2024-10-14 08:38:56

AJAX+PHP实现三级联动的相关文章

第117天:Ajax实现省市区三级联动

Ajax实现省市区三级联动 思路: (1)首先获取省份信息 (2)发起Ajax请求,注意dataType中的T大写 (3)封装回调函数,回调函数success中用$.each循环每一条数据,动态创建option,并将数据添加到option中 (4)定义点击事件,注意点击省调用的是city函数,点击市调用的是area函数 (5)注意获取市信息用的是省编码(pCode),获取区用的是市编码(cCode). 1.HTML代码 1 <!doctype html> 2 <html lang=&qu

ajax简介以及用ajax做的三级联动小练习

ajax基本结构: 1 var name = $("#text_1").val(); 2 $.ajax({ 3 url: "Ashxs/Handler.ashx",//一般处理程序路径 4 data: { "name": name },//要传输的数据,冒号前面是键名后面是要传输的数据,如果有多条数据在大括号内用逗号拼接 5 type: "post",//传输方式 6 dataType: "json",//

基于thinkphp和ajax的省市区三级联动

练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2,建一个index.html <div> <label>所在地点</label> <select name="province_id" id="province_id" style="width:150px;"

Ajax案例:三级联动查询员工的信息(三张表进行内连接)

需求分析: 通过数据库连接池,可以查询到数据库中员工的各种信息,通过点击下拉框的方式实现三级联动,即:没有点击city下拉框,后面两个下拉框中没有值,这样,点击city下拉框,department下拉框中才有值,点击department下拉框后employee下拉框中才有值,才可以进行选择,不可以跨级点击:点击最后一个下拉框可以将员工的id,last_name,email,salary,显示在下面的表格中: 实现上述功能的方法: 1.c3p0数据库连接池,实现数据库的链接:JdbcUtils类,

基于ThinkPHP+AJAX的省市区三级联动

练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2,建一个index.html <div> <label>所在地点</label> <select name="province_id" id="province_id" style="width:150px;"

ajax+jsp实现三级联动下拉框

js文件sjld.js  : $(document).ready( function(){ $.ajax({ url:"bindZ", type:"get", dataType:"json", success:bindZList }); } ); //回调函数 function bindZList(json){ data=(json.a); for(zmc in data){ var option = document.createElement

PHP+Ajax+JS省市区三级联动

     基本思想就是:在JS动态创建select控件的option,通过Ajax获取在PHP从SQL数据库获取的省市区信息,代码有点长,但很多都是类似的,例如JS中省.市.区获取方法类似,PHP中通过参数不同执行不同的select语句.  index.html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1

php mysql jquery ajax 查询数据库三级联动

1.php 页面打开直接展示第一个select option中的数据 2.当第一个下拉列表选中的内容发生改变的时候,查询数据库填充第二个下拉列表 3.当第二个下拉列表选中的内容发生改变时,查询数据库填充第三个下拉列表 注意点: 1.查询出来的数据,如果绑定到select上 2.select cochange事件 3.ajax 请求,提交到某个php 页面,参数是下拉列表选中的值,需要知道如何获取,查询数据库有结果,如果将返回的json格式的数据进行解析 代码: 表 CREATE TABLE `a

ajax省市线三级联动

<script type='text/javascript' src='http://ajax.useso.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=3.4.2'></script> <script type="text/javascript"> var xmldom=null;//声明一个全局变量,用来存储xmldocument对像 $(function(){ //加载完成立即获得省份信息 $.aja