1. 程式人生 > >AJAX+PHP實現三級聯動

AJAX+PHP實現三級聯動

lec hang implode clas success cti 部分 點擊事件 ces

利用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用來存放這個三級聯動

AJAX+PHP實現三級聯動