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 相关文章推荐
java与javascript之间json格式数据互转介绍
Oct 29 Javascript
JS复制到剪贴板示例代码
Oct 30 Javascript
node.js中的console.error方法使用说明
Dec 10 Javascript
javascript引用赋值(地址传值)用法实例
Jan 13 Javascript
jQuery插件expander实现图片翻转特效
May 21 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
Feb 25 Javascript
jQuery日历插件datepicker用法详解
Mar 03 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 Javascript
canvas仿iwatch时钟效果
Mar 06 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
Oct 30 Javascript
在vue项目中引入高德地图及其UI组件的方法
Sep 04 Javascript
Vue实现table上下移动功能示例
Feb 21 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
PHP 数组入门教程小结
2009/05/20 PHP
PHP中PDO的错误处理
2011/09/04 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
2016/01/14 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python3+PyQt5实现文档打印功能
2018/04/24 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
Python unittest框架操作实例解析
2020/04/13 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
什么是Python变量作用域
2020/06/03 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
理工科学生的自我评价
2013/12/15 职场文书
关于旷工的检讨书
2014/02/02 职场文书
索桥的故事教学反思
2014/02/06 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
护士个人自我鉴定
2014/03/24 职场文书
娱乐节目策划方案
2014/06/10 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
撤诉状格式范本
2015/05/19 职场文书
解析CSS 提取图片主题色功能(小技巧)
2021/05/12 HTML / CSS
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS