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 相关文章推荐
jquery EasyUI的formatter格式化函数代码
Jan 12 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
Dec 11 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
每天一篇javascript学习小结(Array数组)
Nov 11 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
Dec 17 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
Apr 27 Javascript
图片懒加载imgLazyLoading.js使用详解
Sep 15 Javascript
echarts整合多个类似option的方法实例
Jul 10 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
Sep 05 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
Dec 03 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 Javascript
vue+element表格导出为Excel文件
Sep 26 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源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
jQuery验证插件validate使用详解
2016/05/11 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
Vue如何实现组件的源码解析
2017/06/08 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
使用cx_freeze把python打包exe示例
2014/01/24 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
python同步windows和linux文件
2019/08/29 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
毕业自我评价
2014/02/05 职场文书
保护环境建议书300字
2014/05/13 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
2014年手术室工作总结
2014/11/26 职场文书
2015年春节标语口号
2014/12/09 职场文书
毕业生对母校寄语
2015/02/26 职场文书
幸福来敲门观后感
2015/06/04 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
用php如何解决大文件分片上传问题
2021/07/07 PHP
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技