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 HashTable
Jan 22 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
Js四则运算函数代码
Jul 21 Javascript
js调用AJAX时Get和post的乱码解决方法
Jun 04 Javascript
ExtJS4 表格的嵌套 rowExpander应用
May 02 Javascript
javascript背景时钟实现方法
Jun 18 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
Apr 14 Javascript
基于jQuery实现表格的查看修改删除
Aug 01 Javascript
JQuery遍历元素的父辈和祖先的方法
Sep 18 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 Javascript
在vue项目中使用sass语法问题
Jul 18 Javascript
javascript实现蒙版与禁止页面滚动
Jan 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写的MySQL数据库用户认证系统代码
2007/03/22 PHP
php include和require的区别深入解析
2013/06/17 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
PHP.vs.JAVA
2016/04/29 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
PHP7变量处理机制修改
2021/03/09 PHP
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
跟老齐学Python之数据类型总结
2014/09/24 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
详解Python_shutil模块
2019/03/15 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
工程管理英文求职信
2014/03/18 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
2015年教师节慰问信
2015/03/23 职场文书
民事代理词范文
2015/05/25 职场文书
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python