layui實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)效果
本文實(shí)例為大家分享了layui實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)效果的具體代碼,供大家參考,具體內(nèi)容如下
<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="">請(qǐng)選擇省</option>
</select>
</div>
<div class="layui-input-inline">
<select name="city" lay-filter="city" disabled>
<option value="">請(qǐng)選擇市</option>
</select>
</div>
<div class="layui-input-inline">
<select name="area" lay-filter="area" disabled>
<option value="">請(qǐng)選擇縣/區(qū)</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() {
//加載省數(shù)據(jù)
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>';
}
//初始化省數(shù)據(jù)
$("select[name=province]").append(proHtml);
form.render();
form.on('select(province)', function (proData) {
$("select[name=area]").html('<option value="">請(qǐng)選擇縣/區(qū)</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');
}
//加載市數(shù)據(jù)
Address.prototype.citys = function(citys) {
var cityHtml = '<option value="">請(qǐng)選擇市</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");
}
});
}
//加載縣/區(qū)數(shù)據(jù)
Address.prototype.areas = function(areas) {
var areaHtml = '<option value="">請(qǐng)選擇縣/區(qū)</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 后臺(tái)
/**
* 地區(qū)三級(jí)聯(lián)動(dòng)
*/
public function areaAction(){
$code = $this->sys_getparam('code' ) ; // 獲取省市區(qū)數(shù)據(jù)
$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){ //區(qū)
$sql = "
SELECT id AS code,district AS name FROM a_district WHERE city_id= $code ;
" ;
}
$areaData = app::dbload($sql,'all');
echo json_encode($areaData) ;
}
效果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript基于DOM操作實(shí)現(xiàn)簡(jiǎn)單的數(shù)學(xué)運(yùn)算功能示例
這篇文章主要介紹了JavaScript基于DOM操作實(shí)現(xiàn)簡(jiǎn)單的數(shù)學(xué)運(yùn)算功能,涉及javascript節(jié)點(diǎn)操作、元素遍歷及數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-01-01
JavaScript實(shí)現(xiàn)數(shù)組在指定位置插入若干元素的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)數(shù)組在指定位置插入若干元素的方法,涉及javascript中splice方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
分享javascript計(jì)算時(shí)間差的示例代碼
這篇文章主要為大家介紹了javascript計(jì)算時(shí)間差的示例代碼,,一般來說都是計(jì)算當(dāng)前時(shí)間和一個(gè)指定時(shí)間點(diǎn)之間的差距,感興趣的小伙伴們可以參考一下2016-01-01
js數(shù)組刪除問題(splice和delete的用法)
這篇文章主要介紹了js數(shù)組刪除問題(splice和delete的用法),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
符合W3C網(wǎng)頁標(biāo)準(zhǔn)的iframe標(biāo)簽的使用方法
符合W3C網(wǎng)頁標(biāo)準(zhǔn)的iframe標(biāo)簽的使用方法...2007-07-07
javascript學(xué)習(xí)基礎(chǔ)筆記之DOM對(duì)象操作
javascript是一種基于對(duì)象和世界驅(qū)動(dòng),并且安全性較強(qiáng)的腳本語言。一個(gè)完整的javascript實(shí)現(xiàn)包括核心(ECMAScript),文檔對(duì)象模型(DOM)和瀏覽器對(duì)象模型(BOM)2011-11-11

