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 相关文章推荐
使用jQuery的ajax功能实现的RSS Reader 代码
Sep 03 Javascript
JavaScript中的noscript元素属性位置及作用介绍
Apr 11 Javascript
js浮动图片的动态效果
Jul 10 Javascript
JS中数组Array的用法示例介绍
Feb 20 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
Feb 22 Javascript
js原生实现FastClick事件的实例
Nov 20 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
Nov 25 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
angularJS1 url中携带参数的获取方法
Oct 09 Javascript
微信小程序 搜索框组件代码实例
Sep 06 Javascript
Echarts实现单条折线可拖拽效果
Dec 19 Javascript
js实现3D旋转效果
Aug 18 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
PHP网站提速三大“软”招
2006/10/09 PHP
php 获取本机外网/公网IP的代码
2010/05/09 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
js中replace的用法总结
2013/12/27 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
Python中查看文件名和文件路径
2017/03/31 Python
Python标准库sched模块使用指南
2017/07/06 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
详解Python中的测试工具
2019/06/09 Python
Python验证码截取识别代码实例
2020/05/16 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
一名毕业生的自我鉴定
2013/12/04 职场文书
生产车间主管岗位职责
2013/12/28 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
自荐信如何制作?
2014/02/21 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
先进典型事迹材料
2014/12/29 职场文书
离婚协议书范文2015
2015/01/26 职场文书
家属慰问信
2015/02/14 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
德生2P3收音机开箱评测
2022/04/30 无线电
Python PIL按比例裁剪图片
2022/05/11 Python
Vue深入理解插槽slot的使用
2022/08/05 Vue.js