AJax 三级联动
1、主页面
<title>无标题文档</title> <script src="../jquery-1.11.2.min.js"></script> <script src="sanji.js"></script> </head> <body> <!--为了方便以后使用,我们在主页面仅仅写一个div,新建一个页面写script代码,将其设置成为一个插件,方便以后的调用--> <div id="sanji"></div> </body> </html>
2、script代码
// JavaScript Document
$(document).ready(function(e) {
//写三个select下拉列表
var zhuti = "<select id='sheng'></select><select id='shi'></select><select id='qu'></select>";
$("#sanji").html(zhuti);
//填充省
FillSheng();
//填充市
FillShi();
//填充区
FillQu();
//当省选中变化的时候去填充市和区
$("#sheng").change(function(){
//填充市
FillShi();
//填充区
FillQu();
})
//当市选中变化的时候去填充区
$("#shi").change(function(){
//填充区
FillQu();
})
});
//填充省的方法
function FillSheng()
{
//省的父级代号
var pcode = "0001";
//调用AJAX
$.ajax({
async:false, //关闭异步,开启同步
url:"chuli.php",
data:{pcode:pcode},
type:"POST",
dataType:"TEXT",
success: function(data){
//拆分返回的字符串,得到行的数组
var hang = data.trim().split("|");
var str = "";
for(var i=0; i<hang.length;i++)
{
//返回列的数组
var lie = hang[i].split("^");
str = str+"<option value='"+lie[0]+"'>"+lie[1]+"</option>";
}
$("#sheng").html(str);
}
});
}
//填充市的方法
function FillShi()
{
//取到市的父级代号
var pcode = $("#sheng").val();
//调用AJAX
$.ajax({
async:false,
url:"chuli.php",
data:{pcode:pcode},
type:"POST",
dataType:"TEXT",
success: function(data){
var hang = data.trim().split("|");
var str = "";
for(var i=0;i<hang.length;i++)
{
var lie = hang[i].split("^");
str = str+"<option value='"+lie[0]+"'>"+lie[1]+"</option>";
}
$("#shi").html(str);
}
});
}
//填充区的方法
function FillQu()
{
//找到区的父级代号
var pcode = $("#shi").val();
//调用AJAX
$.ajax({
url:"chuli.php",
data:{pcode:pcode},
type:"POST",
dataType:"TEXT",
success: function(data){
var hang = data.trim().split("|");
var str = "";
for(var i=0;i<hang.length;i++)
{
var lie = hang[i].split("^");
str = str+"<option value='"+lie[0]+"'>"+lie[1]+"</option>";
}
$("#qu").html(str);
}
});
}
3、处理页面
我们从数据库中查询行政区,是根据父级代号查询子级区域,因此,在整个过程中,我们只需要写一个php处理页面,之后反复调用即可
<?php
include("../DBDA.php");
$db = new DBDA();
//接收父级代号
$pcode = $_POST["pcode"];
//根据父级代号查子级区域
$sql = "select * from ChinaStates where ParentAreaCode='{$pcode}'";
echo $db->StrQuery($sql);
?>

浙公网安备 33010602011771号