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操作table示例(个人心得)
Nov 29 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 Javascript
Jquery中offset()和position()的区别分析
Feb 05 Javascript
学习Angularjs分页指令
Jul 01 Javascript
仿淘宝JSsearch搜索下拉深度用法
Jan 15 Javascript
vue短信验证性能优化如何写入localstorage中
Apr 25 Javascript
JS实现的全选、全不选及反选功能【案例】
Feb 19 Javascript
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
JS实现贪吃蛇游戏
Nov 15 Javascript
JS实现前端动态分页码代码实例
Jun 02 Javascript
小程序自定义轮播图圆点组件
Jun 25 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 字符串操作入门教程
2006/12/06 PHP
php处理json时中文问题的解决方法
2011/04/12 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
js给onclick事件赋值,动态传参数实例解说
2013/03/28 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
Python rstrip()方法实例详解
2018/11/11 Python
python中web框架的自定义创建
2019/09/08 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
党员公开承诺事项
2014/03/25 职场文书
英语教师求职信
2014/06/16 职场文书
家长评语怎么写
2014/12/30 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
2016公司年会主持词
2015/07/01 职场文书
导游词之青岛崂山
2019/12/27 职场文书