三级联动

Posted 幸福的谎言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三级联动相关的知识,希望对你有一定的参考价值。

利用三级联动做地区选择

主页面:1.必须要有jquery的链接

           2.jquery必须要放在开始的地方

<!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 src="jquery-1.11.2.min.js"></script>
<script src="sanji.js"></script>
</head>

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

三级js页面:

// javascript Document

$(document).ready(function(e) {
    //将DIV里面写入三个下拉列表
    $("#sanji").html("<select id=\'sheng\'></select><select id=\'shi\'></select><select id=\'qu\'></select>");
    
    

     //填充内容
    //1.填充省
    FillSheng();
    //填充市
    FillShi();
    //填充区
    FillQu();
    $("#sheng").change(function ()//如果省选中变化的时候,去填充市和区
    {
        //改变市
        FillShi();
        //改变区
        FillQu();
        
        })
        //如果是市选中变化的时候,去填充区
        $("#shi").change(function(){
            
            //改变区
            FillQu();                        
        })
        //填充省的方法
        function FillSheng()
        {
        //找到父级代号
        var pcode="0001";
        
        //调用Ajax
        $.ajax({
            async:false,
            url:"jschuli.php",
            
            data:{pcode:pcode},
            type:"POST",
            dataType:"TEXT",
            success: function (data){
                var str="";//造一个字符串
                var hang=data.split("|");//返回hang的值
                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 FillShi()
            {
            //根据父级代号取市的值
            var pcode=$("#sheng").val();
        
        $.ajax({
            async:false,
            url:"jschuli.php",
            
            data:{pcode:pcode},
            type:"POST",
            dataType:"TEXT",
            success: function (data){
                var str="";//造一个字符串
                var hang=data.split("|");//返回hang的值
                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 FillQu()
    {
        //var值(定义一个根据父级代号取区的值)
        var pcode=$("#shi").val(); 
        //调用ajax
        $.ajax({
            async:false,
            url:"jschuli.php",
            data:{pcode:pcode},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                
                 var str="";
                 var hang=data.split("|")
                 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:

<?php
//取到传过来的父级代号
$pcode=$_POST["pcode"];
//引入数据操作类
include("./DBDA.class.php");
$db=new DBDA();

//写SQL语句
$sql="select AreaCode,AreaName,ParentAreaCode from chinastates 
where ParentAreaCode=\'{$pcode}\'";


$attr=$db->query($sql);
$str=""; 
foreach($attr as $v)
{
    $str=$str.implode("^",$v);
    $str=$str."|";    
    
}
$str=substr($str,0,strlen($str)-1);

echo $str;

连接到的服务器

<?php
class DBDA
{
    public $host="localhost";
    public $uid="root";
    public $pwd="123456";
    function Query($sql,$type=0,$db="mybd")
   {
    $db=new mysqli($this->host,$this->uid,$this->pwd,$db);
    !mysqli_connect_error() or die("连接失败");
    $result=$db->query($sql);
    if($type==0)
    {
        return $result->fetch_all();
    }
    else
    {
        return $result;
    }
                
    }
}

效果显示:

 

 

以上是关于三级联动的主要内容,如果未能解决你的问题,请参考以下文章

ios收货地址三级联动选择

ajax省市区三级联动

三级联动

三级联动 省市 ajax的代码

三级联动 省市 ajax的代码

Ajax三级联动