jQuery ajax实现省市县三级联动

 更新时间:2017年03月14日 09:54:18   转载 作者:小艾—21克的爱  
这篇文章主要为大家详细介绍了jQuery ajax实现省市县三级联动的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

下面我们用Jquery,ajax,做一个省,市,县的三级联动:

下面是我做三级联动下拉的步骤以及逻辑

第一步:先做一个省市区表格
第二步:建个PHP页面显示用我是在<body>里放<div>用来接收要显示的省市区表格信息,里面嵌入jquery-1.11.2.min.js和自己封装的三联动省市区的方法
第三步:写封装方法用JS
第四步:做个纯php处理页面,这个页面处理传过来的任何代号

首先我们要建立数据库:

这就是包含省,市,县的数据库。

下面我们就写主页面: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">
    <!--在这里使用三级联动插件-->
  </div>
</body>
</html>

然后就是js文件:

// JavaScript Document
$(document).ready(function(e){
  //向div里面仍三个下拉
   var str = "<select id='sheng'></select><select id='shi'></select><select id='qu'></select>";
  $("#sanjiliandong").html(str);//三个下拉显示
       
   
  //当省选中的话市也会跟着变去也会变。市和区都会加载一遍
  FillSheng();//省
  FillShi();//市
  FillQu();//区
  //给省加点击事件
  $("#sheng").change(function(){
      FillShi();//市
      FillQu();//区
    })
  //给市加点击事件
  $("#shi").change(function(){
      FillQu();//区
    })
});
//做三个方法分别为省市区
//填充省的方法,如何在表里查询 出省的代号例如:北京0001、天津0001,中国下面所有省都是0001开头的
function FillSheng()
{
  var pcode = "0001";
  $.ajax({
    async:false,
    url:"chuli.php",
    data:{pcode:pcode},
    type:"POST",
    dataType:"TEXT",
    success: function(data){
      //返回数据,根据行于行之间的分隔符来拆,拆完之后会返回一数组/行的数组
      var hang = data.split("|");
      
      var str = "<option value='' >请选择地区</option>";
      //把行的数组遍历下用for循环...length长度
      for(var i=0;i<hang.length;i++)
      {
        //把行的索引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:"chuli.php",
    data:{pcode:pcode},
    type:"POST",
    dataType:"TEXT",
    success: function(data){
      //返回数据,根据行于行之间的分隔符来拆,拆完之后会返回一数组/行的数组
      var hang = data.split("|");
      
      var str = "<option value='' >请选择城市</option>";
      //把行的数组遍历下用for循环...length长度
      for(var i=0;i<hang.length;i++)
      {
        //把行的索引i在拆下.列与列的分隔符再拆
        var lie = hang[i].split("^");//这是列的数组
        str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
      }
      $("#shi").html(str);
    }
  });
}
//填充区的方法
function FillQu()
{
  var pcode = $("#shi").val();
  $.ajax({
    async:false,
    url:"chuli.php",
    data:{pcode:pcode},
    type:"POST",
    dataType:"TEXT",
    success: function(data){
      //返回数据,根据行于行之间的分隔符来拆,拆完之后会返回一数组/行的数组
      var hang = data.split("|");
      
      var str = "<option value='' >请选择乡县</option>";
      //把行的数组遍历下用for循环...length长度
      for(var i=0;i<hang.length;i++)
      {
        //把行的索引i在拆下.列与列的分隔符再拆
        var lie = hang[i].split("^");//这是列的数组
        str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
        
        $("#qu").html(str);
      }
    }
  });
}

之后是查询数据库的处理文件:

<?php
 //处理页面只有一个功能处理传过来的所有代号(省、市、区。。。)
 include("DBDA.class.php");
 $db = new DBDA();
 $pcode = $_POST["pcode"];//取到赋值代号
 $sql = "select * from chinastates where parentareacode='{$pcode}'";
echo $db->StrQuery($sql);

显示效果如下:

这就是我们要做的省,市,县的三级联动。在这里我们重点强调一下一定要做好逻辑关系,想好了在去动手写代码,要不然容易混乱,这样的话就只能从头开始。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Jquery修改image的src属性,图片不加载问题的解决方法

    Jquery修改image的src属性,图片不加载问题的解决方法

    下面小编就为大家带来一篇Jquery修改image的src属性,图片不加载问题的解决方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-05-05
  • Jquery日期选择datepicker插件用法实例分析

    Jquery日期选择datepicker插件用法实例分析

    这篇文章主要介绍了Jquery日期选择datepicker插件用法,实例分析了datepicker插件的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • JQuery学习笔录 简单的JQuery

    JQuery学习笔录 简单的JQuery

    尺寸小、使用简单方便(Write Less, Do More,吃得少干得多,而且目前许多大公司都在支持JQuery,例如微软,微软把JQuery继承在了vs2010中
    2012-04-04
  • getJSON调用后台json数据时函数被调用两次的原因猜想

    getJSON调用后台json数据时函数被调用两次的原因猜想

    近期在做前端开发时候使用到getJSON调用后台json数据,发现后台的函数被调用两次,函数名称为getMessages,下面是本人的一些猜想,感兴趣的朋友可以参考下
    2013-09-09
  • Jquery on绑定的事件 触发多次实例代码

    Jquery on绑定的事件 触发多次实例代码

    下面小编就为大家带来一篇Jquery on绑定的事件 触发多次实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • jQuery中prepend()方法用法实例

    jQuery中prepend()方法用法实例

    这篇文章主要介绍了jQuery中prepend()方法用法,以实例形式较为详细的分析了prepend()方法的功能、定义及使用技巧,并对比分析了与text()方法的不同之处,需要的朋友可以参考下
    2014-12-12
  • 基于jquery实现瀑布流布局

    基于jquery实现瀑布流布局

    这篇文章主要介绍了基于jquery实现瀑布流布局的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • jquery实现鼠标滑过显示提示框的方法

    jquery实现鼠标滑过显示提示框的方法

    这篇文章主要介绍了jquery实现鼠标滑过显示提示框的方法,以两个不同实例形式分析了jQuery鼠标滑过显示提示框的实现技巧与功能代码,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • jquery通过ajax加载一段文本内容的方法

    jquery通过ajax加载一段文本内容的方法

    这篇文章主要介绍了jquery通过ajax加载一段文本内容的方法,是jQuery针对Ajax的灵活应用,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • jquery制作多功能轮播图插件

    jquery制作多功能轮播图插件

    本文给大家分享的是一款基于jQuery制作的多功能的轮播幻灯插件,支持多种配置,十分的实用,这里推荐给大家,有需要的小伙伴可以参考下。
    2015-04-04

最新评论