ajax實現三級聯動下拉菜單


先不要着急去實現功能,我們第一步首先要理清思路,想要實現三級聯動,首先要有三個下拉框,然后點擊第一個下拉菜單,可以聯動到第二個,點擊第二個聯動到第三個,實現省市區的三級聯動,用到的數據表如下:

為了以后可以隨時拿出來用,我們先在主頁面建立一個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);

 最終效果圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM