先不要着急去實現功能,我們第一步首先要理清思路,想要實現三級聯動,首先要有三個下拉框,然后點擊第一個下拉菜單,可以聯動到第二個,點擊第二個聯動到第三個,實現省市區的三級聯動,用到的數據表如下:
為了以后可以隨時拿出來用,我們先在主頁面建立一個div叫sanji,然后用一個js頁面來引用:
主頁面引入Jquery和js:
<title>無標題文檔</title> <script src="jquery-3.2.0.min.js"></script> <script src="sanji.js"></script> </head> <body> <h1>區域查詢</h1> <div id="sanji"></div> </body> </html>
js頁面才是重點,這個頁面純用js(jquery)代碼來寫,邏輯就是寫三個方法,讓省找到市,市找到區:
$(document).ready(function(e) { var str = "<select id='sheng'></select><select id='shi'></select><select id='qu'></select>";//三個下拉交給一個字符串 $("#sanji").html(str);//將三個下拉的字符串交給前邊的div tiansheng();//加載省的數據 tianshi();//加載市的數據 tianqu();//加載區 的數據 $("#sheng").change(function(){ tianshi();//重新加載市 tianqu();//重新加載區 }) $("#shi").change(function(){ tianqu();//加載區的數據 }) }); function tiansheng() { var pcode = "0001"; //找出省的父級代號 $.ajax({ async:false,//同步 url:"sanchuli.php", data:{pcode:pcode}, type:"POST", dataType:"TEXT", success: function(data){ var hang = data.split("|");//拆分行 var str = ""; for(var i=0;i<hang.length;i++) { var lie = hang[i].split("^");//拆分列 str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>"; } $("#sheng").html(str); } }); } function tianshi() { var pcode = $("#sheng").val();//找市的父級代號,省選中項的值 $.ajax({ async:false, url:"sanchuli.php", data:{pcode:pcode}, type:"POST", dataType:"TEXT", success: function(data){ var hang = data.split("|"); var str = ""; for(var i=0;i<hang.length;i++) { var lie = hang[i].split("^"); str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>"; } $("#shi").html(str); } }); } function tianqu() { var pcode = $("#shi").val();//找區的父級代號,市選中項的值 $.ajax({ url:"sanchuli.php", data:{pcode:pcode}, type:"POST", dataType:"TEXT", success: function(data){ var hang = data.split("|"); var str = ""; for(var i=0;i<hang.length;i++) { var lie = hang[i].split("^"); str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>"; } $("#qu").html(str); } }); }
最后處理頁面很簡單,直接用一個頁面就可以,因為要實現的功能都是一樣的:
<?php $pcode = $_POST["pcode"]; require "DBDA.class.php"; $db = new DBDA(); $sql = "select * from chinastates where parentareacode='{$pcode}'"; echo $db->strquery($sql);
最終效果圖: