Ajax三级联动

全国省市县查询

html代码

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
	<script src="../jquery-1.11.2.min.js"></script>
    <script src="sanji.js"></script>
</head>

<body>
    <h1>区域查询</h1>
    <div id="sanji"></div>
</body>
</html>

 js代码实现各区市随省的变化而变化

$(document).ready(function(e) {
    $("#sanji").html("<select id='sheng'></select><select id='shi'></select><select id='qu'></select>");//将三个下拉的字符串交给前边的div
    tiansheng();//加载省的数据
    tianshi();//加载市的数据
    tianqu();//加载区 的数据
    
    $("#sheng").change(function(){//变化后执行                
		tianshi();//重新加载市
		tianqu();//重新加载区
    })
    $("#shi").change(function(){//变化后执行
		tianqu();//加载区的数据
    })
});

function tiansheng(){
	var pcode = "0001"; //找出省的父级代号
	$.ajax({
		async:false,//同步加载
		url:"states.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:"states.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:"states.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);

 DBDA封装功能

<?php
class DBDA{
	public $host="localhost"; //服务器地址
	public $uid="root"; //用户名
	public $pwd="123"; //密码
	public $dbname="crud"; //数据库名称
	public function query($sql,$type=0){
		$db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
		$result = $db->query($sql);
		if($type){
			return $result;
		}else{
			return $result->fetch_all();
		}
	}
	public function strquery($sql,$type=0){
		$db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
		$result = $db->query($sql);
		if($type){
			return $result;
		}else{
			$arr = $result->fetch_all();
			$str ="";
			foreach($arr as $v){
				$str .= implode("^",$v)."|";
			}
			$str = substr($str,0,strlen($str)-1);
			return $str;
		}
	}
}

 

posted @ 2018-01-29 11:36  navyyouth  阅读(167)  评论(0编辑  收藏  举报