layui实现三级联动效果


Posted in Javascript onJuly 26, 2019

本文实例为大家分享了layui实现三级联动效果的具体代码,供大家参考,具体内容如下

<html> 
 <head> 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  <meta name="renderer" content="webkit"> 
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 
  <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
  <meta name="apple-mobile-web-app-capable" content="yes"> 
  <meta name="format-detection" content="telephone=no"> 
  <link rel="stylesheet" href="src/css/layui.css" /> 
 </head> 
 <body> 
  <div class="layui-form"> 
   <div class="layui-input-inline"> 
    <select name="province" lay-filter="province" class="province"> 
     <option value="">请选择省</option> 
    </select> 
   </div> 
   <div class="layui-input-inline"> 
    <select name="city" lay-filter="city" disabled> 
     <option value="">请选择市</option> 
    </select> 
   </div> 
   <div class="layui-input-inline"> 
    <select name="area" lay-filter="area" disabled> 
     <option value="">请选择县/区</option> 
    </select> 
   </div> 
  </div> 
 </body> 
 <script type="text/javascript" src="src/layui.js"></script> 
 <script type="text/javascript" src="src/address.js"></script> 
 <script type="text/javascript"> 
  layui.config({ 
   base : "src/" //address.js的路径 
  }).use([ 'layer', 'jquery', "address" ], function() { 
   var layer = layui.layer, $ = layui.jquery, address = layui.address(); 
 
  }); 
 </script> 
<html>

JS:address.js

layui.define(["form","jquery"],function(exports){ 
 var form = layui.form, 
 $ = layui.jquery, 
 Address = function(){}; 
 
 Address.prototype.provinces = function() { 
  //加载省数据 
  var proHtml = '',that = this; 
  $.get("area",{code:'',type:1}, function (pro) {
 
 
   for (var i = 0; i < pro.length; i++) {
    proHtml += '<option value="' + pro[i].code + '">' + pro[i].name + '</option>';
   } 
   //初始化省数据 
   $("select[name=province]").append(proHtml); 
   form.render(); 
   form.on('select(province)', function (proData) {
 
 
    $("select[name=area]").html('<option value="">请选择县/区</option>');
    var value = proData.value;
 
 
 
 
    if (value > 0) {
     $.post('area',{code:value,type:2},function (val) {
      //console.log(val.length) ;
      that.citys(val) ;
     },"json");
     //that.citys(pro[$(this).index() - 1].childs);
 
 
    } else {
     $("select[name=city]").attr("disabled", "disabled");
    }
   });
  },'json');
 }
 
 //加载市数据 
 Address.prototype.citys = function(citys) {
 
 
  var cityHtml = '<option value="">请选择市</option>',that = this; 
  for (var i = 0; i < citys.length; i++) { 
   cityHtml += '<option value="' + citys[i].code + '">' + citys[i].name + '</option>'; 
  } 
  $("select[name=city]").html(cityHtml).removeAttr("disabled"); 
  form.render(); 
  form.on('select(city)', function (cityData) { 
   var value = cityData.value; 
   if (value > 0) {
    $.post('area',{code:value,type:3},function (area) {
     that.areas(area) ;
    },"json");
    //that.areas(citys[$(this).index() - 1].childs);
   } else { 
    $("select[name=area]").attr("disabled", "disabled"); 
   } 
  }); 
 } 
 
 //加载县/区数据 
 Address.prototype.areas = function(areas) { 
  var areaHtml = '<option value="">请选择县/区</option>'; 
  for (var i = 0; i < areas.length; i++) { 
   areaHtml += '<option value="' + areas[i].code + '">' + areas[i].name + '</option>'; 
  } 
  $("select[name=area]").html(areaHtml).removeAttr("disabled"); 
  form.render(); 
 } 
 
 var address = new Address(); 
 exports("address",function(){ 
  address.provinces(); 
 }); 
});

ajax ->PHP 后台

/**
  * 地区三级联动
  */
  public function areaAction(){
   $code = $this->sys_getparam('code' ) ; // 获取省市区数据
   $type = $this->sys_getparam('type' ) ;
   
   if($type==1){ //省
    $sql = "
   SELECT id AS code,province AS name FROM a_province ;
   " ;
   }
   if($type==2){ //市
    $sql = "
   SELECT id AS code,city AS name FROM a_city WHERE province_id= $code ;
   " ;
   }
   if($type==3){ //区
    $sql = "
   SELECT id AS code,district AS name FROM a_district WHERE city_id= $code ;
   " ;
   }
   $areaData = app::dbload($sql,'all');
   echo json_encode($areaData) ;
  }

效果:

layui实现三级联动效果

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

Javascript 相关文章推荐
收藏一些不常用,但是有用的代码
Mar 12 Javascript
javascript数字格式化通用类 accounting.js使用
Aug 24 Javascript
Javascript图片上传前的本地预览实例
Jun 16 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
Nov 26 Javascript
分享Javascript实用方法二
Dec 13 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
Apr 13 Javascript
详解vue中computed 和 watch的异同
Jun 30 Javascript
babel之配置文件.babelrc入门详解
Feb 22 Javascript
JS从非数组对象转数组的方法小结
Mar 26 Javascript
highcharts.js数据绑定方式代码实例
Nov 13 Javascript
angular异步验证防抖踩坑实录
Dec 01 Javascript
JavaScript运行机制实例分析
Apr 11 Javascript
layui实现三级导航菜单
Jul 26 #Javascript
layui实现左侧菜单点击右侧内容区显示
Jul 26 #Javascript
详解nvm管理多版本node踩坑
Jul 26 #Javascript
layui自定义ajax左侧三级菜单
Jul 26 #Javascript
layui递归实现动态左侧菜单
Jul 26 #Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
Jul 26 #Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 #Javascript
You might like
PHP判断网络文件是否存在的方法
2015/03/12 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
深入学习Python中的装饰器使用
2016/06/20 Python
python模块之re正则表达式详解
2017/02/03 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
python利用tkinter实现屏保
2019/07/30 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
波兰珠宝品牌:YES
2019/08/09 全球购物
北承题目(C++)
2012/05/16 面试题
初中三年学生的学习自我评价
2013/11/13 职场文书
自我评价范文
2013/12/22 职场文书
建议书的格式
2014/05/12 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
四风查摆剖析材料
2014/10/10 职场文书
python 如何用terminal输入参数
2021/05/25 Python
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android
Python实现对齐打印 format函数的用法
2022/04/28 Python
mysql 获取相邻数据项
2022/05/11 MySQL
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技