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 相关文章推荐
Javascript 继承机制实例
Aug 12 Javascript
Javascript中判断对象是否为空
Jun 10 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
Nov 26 Javascript
jQuery通过ajax快速批量提交表单数据
Oct 25 Javascript
JSONP跨域请求
Mar 02 Javascript
jQuery实现文章图片弹出放大效果
Apr 06 jQuery
微信小程序之多文件下载的简单封装示例
Jan 29 Javascript
vue使用自定义指令实现拖拽
Jan 29 Javascript
微信小程序用户拒绝授权的处理方法详解
Sep 20 Javascript
Vue实现导航栏菜单
Aug 19 Javascript
vue+iview实现分页及查询功能
Nov 17 Vue.js
javascript实现京东快递单号的查询效果
Nov 30 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操作XML作为数据库的类
2010/12/19 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
永不消失的title提示代码
2007/02/15 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
探究Python中isalnum()方法的使用
2015/05/18 Python
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
matplotlib中legend位置调整解析
2017/12/19 Python
python 实现UTC时间加减的方法
2018/12/31 Python
python列表推导式操作解析
2019/11/26 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
计算机专业个人求职信范例
2013/09/23 职场文书
医院总经理职责
2013/12/26 职场文书
房产协议书范本2014
2014/09/30 职场文书
中学后勤工作总结2015
2015/07/22 职场文书