溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jQuery ajax如何實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)

發(fā)布時(shí)間:2021-05-18 13:50:17 來(lái)源:億速云 閱讀:365 作者:小新 欄目:web開(kāi)發(fā)

小編給大家分享一下jQuery ajax如何實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

下面我們用Jquery,ajax,做一個(gè)省,市,縣的三級(jí)聯(lián)動(dòng):

下面是我做三級(jí)聯(lián)動(dòng)下拉的步驟以及邏輯

第一步:先做一個(gè)省市區(qū)表格
第二步:建個(gè)PHP頁(yè)面顯示用我是在<body>里放<div>用來(lái)接收要顯示的省市區(qū)表格信息,里面嵌入jquery-1.11.2.min.js和自己封裝的三聯(lián)動(dòng)省市區(qū)的方法
第三步:寫(xiě)封裝方法用JS
第四步:做個(gè)純php處理頁(yè)面,這個(gè)頁(yè)面處理傳過(guò)來(lái)的任何代號(hào)

首先我們要建立數(shù)據(jù)庫(kù):

jQuery ajax如何實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)

這就是包含省,市,縣的數(shù)據(jù)庫(kù)。

下面我們就寫(xiě)主頁(yè)面:sanji.php:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Document</title>
  <script src="jquery-1.11.2.min.js"></script>
  <script src="sanjiliandong.js"></script>
</head>
<body>
  <div id="sanjiliandong">
    <!--在這里使用三級(jí)聯(lián)動(dòng)插件-->
  </div>
</body>
</html>

然后就是js文件:

// JavaScript Document
$(document).ready(function(e){
  //向div里面仍三個(gè)下拉
   var str = "<select id='sheng'></select><select id='shi'></select><select id='qu'></select>";
  $("#sanjiliandong").html(str);//三個(gè)下拉顯示
       
   
  //當(dāng)省選中的話市也會(huì)跟著變?nèi)ヒ矔?huì)變。市和區(qū)都會(huì)加載一遍
  FillSheng();//省
  FillShi();//市
  FillQu();//區(qū)
  //給省加點(diǎn)擊事件
  $("#sheng").change(function(){
      FillShi();//市
      FillQu();//區(qū)
    })
  //給市加點(diǎn)擊事件
  $("#shi").change(function(){
      FillQu();//區(qū)
    })
});
//做三個(gè)方法分別為省市區(qū)
//填充省的方法,如何在表里查詢 出省的代號(hào)例如:北京0001、天津0001,中國(guó)下面所有省都是0001開(kāi)頭的
function FillSheng()
{
  var pcode = "0001";
  $.ajax({
    async:false,
    url:"chuli.php",
    data:{pcode:pcode},
    type:"POST",
    dataType:"TEXT",
    success: function(data){
      //返回?cái)?shù)據(jù),根據(jù)行于行之間的分隔符來(lái)拆,拆完之后會(huì)返回一數(shù)組/行的數(shù)組
      var hang = data.split("|");
      
      var str = "<option value='' >請(qǐng)選擇地區(qū)</option>";
      //把行的數(shù)組遍歷下用for循環(huán)...length長(zhǎng)度
      for(var i=0;i<hang.length;i++)
      {
        //把行的索引i在拆下.列與列的分隔符再拆
        var lie = hang[i].split("^");//這是列的數(shù)組
        str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
        
        $("#sheng").html(str);
      }
    }
  });
}
//填充市的方法
function FillShi()
{
  var pcode = $("#sheng").val();
  $.ajax({
    async:false,//****
    url:"chuli.php",
    data:{pcode:pcode},
    type:"POST",
    dataType:"TEXT",
    success: function(data){
      //返回?cái)?shù)據(jù),根據(jù)行于行之間的分隔符來(lái)拆,拆完之后會(huì)返回一數(shù)組/行的數(shù)組
      var hang = data.split("|");
      
      var str = "<option value='' >請(qǐng)選擇城市</option>";
      //把行的數(shù)組遍歷下用for循環(huán)...length長(zhǎng)度
      for(var i=0;i<hang.length;i++)
      {
        //把行的索引i在拆下.列與列的分隔符再拆
        var lie = hang[i].split("^");//這是列的數(shù)組
        str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
      }
      $("#shi").html(str);
    }
  });
}
//填充區(qū)的方法
function FillQu()
{
  var pcode = $("#shi").val();
  $.ajax({
    async:false,
    url:"chuli.php",
    data:{pcode:pcode},
    type:"POST",
    dataType:"TEXT",
    success: function(data){
      //返回?cái)?shù)據(jù),根據(jù)行于行之間的分隔符來(lái)拆,拆完之后會(huì)返回一數(shù)組/行的數(shù)組
      var hang = data.split("|");
      
      var str = "<option value='' >請(qǐng)選擇鄉(xiāng)縣</option>";
      //把行的數(shù)組遍歷下用for循環(huán)...length長(zhǎng)度
      for(var i=0;i<hang.length;i++)
      {
        //把行的索引i在拆下.列與列的分隔符再拆
        var lie = hang[i].split("^");//這是列的數(shù)組
        str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
        
        $("#qu").html(str);
      }
    }
  });
}

之后是查詢數(shù)據(jù)庫(kù)的處理文件:

<?php
 //處理頁(yè)面只有一個(gè)功能處理傳過(guò)來(lái)的所有代號(hào)(省、市、區(qū)。。。)
 include("DBDA.class.php");
 $db = new DBDA();
 $pcode = $_POST["pcode"];//取到賦值代號(hào)
 $sql = "select * from chinastates where parentareacode='{$pcode}'";
echo $db->StrQuery($sql);

顯示效果如下:

jQuery ajax如何實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)jQuery ajax如何實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)

這就是我們要做的省,市,縣的三級(jí)聯(lián)動(dòng)。在這里我們重點(diǎn)強(qiáng)調(diào)一下一定要做好邏輯關(guān)系,想好了在去動(dòng)手寫(xiě)代碼,要不然容易混亂,這樣的話就只能從頭開(kāi)始。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

什么是ajax

ajax是一種在無(wú)需重新加載整個(gè)網(wǎng)頁(yè)的情況下,能夠更新部分網(wǎng)頁(yè)的技術(shù),可以通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。

以上是“jQuery ajax如何實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI