jQuery ajax实现省市县三级联动


Posted in Javascript onMarch 07, 2021

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

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

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

首先我们要建立数据库:

jQuery ajax实现省市县三级联动

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

下面我们就写主页面: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 ajax实现省市县三级联动jQuery ajax实现省市县三级联动

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

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

Javascript 相关文章推荐
使用js简单实现了tree树菜单
Nov 20 Javascript
jquery创建表格(自动增加表格)代码分享
Dec 25 Javascript
JavaScript实现Flash炫光波动特效
May 14 Javascript
JQuery datepicker 用法详解
Dec 25 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
Sep 05 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
Dec 23 Javascript
JS实现div模块的截图并下载功能
Oct 17 Javascript
Three.js加载外部模型的教程详解
Nov 10 Javascript
Vue项目History模式404问题解决方法
Oct 31 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
Sep 03 Javascript
layui实现checkbox的目录树tree的例子
Sep 12 Javascript
Javascript前端经典的面试题及答案
Mar 14 #Javascript
layer弹出层框架alert与msg详解
Mar 14 #Javascript
微信小程序 仿猫眼实现实例代码
Mar 14 #Javascript
利用js定义一个导航条菜单
Mar 14 #Javascript
微信小程序 跳转传参数与传对象详解及实例代码
Mar 14 #Javascript
使用BootStrap实现标签切换原理解析
Mar 14 #Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
Mar 14 #Javascript
You might like
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Python实现模拟时钟代码推荐
2015/11/08 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
数字漫画:comiXology
2020/06/13 全球购物
Linux文件系统类型
2012/02/15 面试题
精选干货:Java精选笔试题附答案
2014/01/18 面试题
护理专业毕业生推荐信
2013/10/31 职场文书
父亲的菜园教学反思
2014/02/13 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
小学教师个人总结
2015/02/05 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
在人间读书笔记
2015/06/30 职场文书