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 相关文章推荐
JavaScript 模式之工厂模式(Factory)应用介绍
Nov 15 Javascript
js substr支持中文截取函数代码(中文是双字节)
Apr 17 Javascript
JavaScript设计模式之单件模式介绍
Dec 28 Javascript
javascript中setTimeout使用指南
Jul 26 Javascript
详解js私有作用域中创建特权方法
Jan 25 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
Feb 22 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
May 22 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
vue点击按钮动态创建与删除组件功能
Dec 29 Javascript
JavaScript this使用方法图解
Feb 04 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
Apr 26 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 随机排序广告的实现代码
2011/05/09 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
php封装的page分页类完整实例
2016/10/18 PHP
jquery动态更换设置背景图的方法
2014/03/25 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
express.js中间件说明详解
2019/03/19 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
从0开始的Python学习016异常
2019/04/08 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
什么是事务?为什么需要事务?
2012/01/09 面试题
IBatis持久层技术
2016/07/18 面试题
玩具公司的创业计划书
2013/12/31 职场文书
2014年变电站工作总结
2014/12/19 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书
婚宴父母致辞
2015/07/27 职场文书
领导离职感言
2015/08/03 职场文书
海弦WR-800F
2022/04/05 无线电