三级联动显示中国省市信息

<!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" />
<title>三级联动</title>
    <script type="text/javascript" src="0621popwindow/jquery-1.11.2.min.js"></script>

</head>

<body>
<div id="sanji"></div>

</body>
<script type="text/javascript">
    $(document).ready(function(e){


    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({
            async:false,//关闭异步
            url:"0625sanjichuli.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({
            async:false,
            url:"0625sanjichuli.php",
            data:{pcode:pcode},
            type:"POST",
            dataType:"TEXT",
            success:function(data){
                alert(data);
                var str = "";
                var hang = data.trim().split("|");
                for (var i =0; i<hang.length;i++)
                {
                    var lie = hang[i].split("^");
                    str = str + "<option value='"+lie[0]+"'>"+lie[1]+"</opton>"
                }
                $("#shi").html(str);
            }
        })

    }

    function fillqu()
    {
        var pcode = $("#shi").val();
        alert(pcode);
        $.ajax({
            async:false,
            url:"0625sanjichuli.php",
            data:{pcode:pcode},
            type:"POST",
            dataType:"TEXT",
            success:function(data){
                var str = "";
                var hang = data.trim().split("|");
                for (var i =0;i<hang.length;i++)
                {
                    var lie = hang[i].split("^");
                    str=str+"<option>"+lie[1]+"</option>"
                }
                $("#qu").html(str);
            }
        })
    }

</script>
</html>

  

处理界面 

<?php

    include ("DBDA.php");

$db=new DBDA();

$pcode=$_POST["pcode"];

$sql="select * from chinastates where ParentAreaCode = '{$pcode}'";

echo $db->StrQuery($sql);

  

封装类代码

<?php
class DBDA
{
	public $host="localhost";//服务器地址
	public $uid="root";//用户名
	public $pwd="";//密码
	
	public $conn;//连接对象
	//操作数据库的方法
	//$sql代表需要执行的SQL语句
	//$type代表SQL语句的类型,1代表查询,0代表增删改
	//$db代表要操作的数据库名称
	//如果是查询,返回二维数组
	//如果是其他语句,返回true或false
	function __construct($db="aaas"){
		//造连接对象
		$this->conn = new MySQLi($this->host,$this->uid,$this->pwd,$db);
	}
	public function Query($sql,$type=1){
		//判断是否出错
		!mysqli_connect_error() or die("连接失败!");
		//执行SQL语句
		$result = $this->conn->Query($sql);
		//判断SQL语句类型
		if($type==1)		{
			//如果是查询语句,返回结果集的二维数组
			return $result->fetch_all();
		}else{
			//如果是其他语句,返回true或false
			return $result;
		}
	}
	
	//Ajax调用返回JSON
	public function JsonQuery($sql,$type=1,$db="aaas"){
		//定义数据源
		$dsn = "mysql:dbname={$db};host={$this->host}";
		//造pdo对象
		$pdo = new PDO($dsn,"{$this->uid}","{$this->pwd}");
		//准备执行SQL语句
		$st = $pdo->prepare($sql);
		//执行预处理SQL语句
		if($st->execute()){
			if($type==1){
				$sttr = $st->fetchAll(PDO::FETCH_ASSOC);
				return json_encode($attr);
			}else{
				if($st){
					return "OK";
				}else{
					return "NO";
				}
			}
		}else{
			echo "执行失败!";
		}
	}
	
	//Ajax调用返回字符串
	public function StrQuery($sql,$type=1){
		//判断连接是否成功
		!mysqli_connect_error() or die("连接失败!");
		//执行SQL语句
		$result = $this->conn->query($sql);
		//判断SQL语句类型
		if($type==1){
			$attr = $result->fetch_all();
			$str = "";
			//如果是查询语句返回字符串
			for($i=0;$i<count($attr);$i++){
				for($j=0;$j<count($attr[$i]);$j++){
					$str = $str.$attr[$i][$j];
					$str = $str."^";
				}
				$str = substr($str,0,strlen($str)-1);
				$str = $str."|";
			}
			$str = substr($str,0,strlen($str)-1);
			return $str;
		}else{
			//如果是其他语句,返回true或false
			if($result){
				return "OK";
			}else{
				return "NO";
			}
		}
	}
	
	function PdoQuery($sql,$type=1,$db="aaas"){
		//造数据源
		$dns = "mysql:host={$this->host};dbname={$db}";
		//造pdo对象
		$pdo = new PDO($dns,$this->uid,$this->pwd);
		//准备一条SQL语句
		$stm = $pdo->prepare($sql);
		//执行预处理语句
		$r = $stm->execute();
		if($r){
			if($type==1){
				return $stm->fetchAll();
			}else{
				return "OK"; 
			}
		}else{
			return "NO";
		}
	}
}

  

原文地址:https://www.cnblogs.com/pangchunlei/p/5618880.html