效果
]
控制器代码
根据业务自行修改 代码片.
//控制器层
public function getOrgUserInfo()
{
$condition = [];
$this->request->filter(['strip_tags']);
$params =$this->request->param();
$organization_id = isset($params['custom']['organization_id']) ?$params['custom']['organization_id'] :0;
$condition['deleted'] = ['eq',0];
$condition["organization_id"] = $organization_id;
$condition[] = ['EXP',Db::raw("FIND_IN_SET(5,group_id)")];
//分页查询
$page = $this->request->param('pageNumber');
$limit = $this->request->param('pageSize');
$limit = $limit ? $limit : 1;
if ($this->request->param("keyValue")) {
$condition['id'] = $this->request->param("keyValue");
}
$total = $this->model->where($condition)
->order("id", "ASC")
->count();
$list = $this->model
->where($condition)
->field('uid as id,name')
->order("id", "ASC")
->limit($limit)
->page($page)
->select();
$result = array("total" => $total, "rows" => $list);
return json($result);
}
。
视图层
//html
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
<div class="form-group">
<label for="c-organization_id" class="control-label col-xs-12 col-sm-2">组织</label>
<div class="col-xs-12 col-sm-6">
<input id="c-organization_id"
class="form-control selectpage"
data-source="organization/organization/index"//数据来源 其他属性可参照fastadmin selectpage文档使用
data-pagination="true"//打开分页
data-page-size="10"//每页10条数据
data-rule="required"
name="row[organization_id]"
type="text"
value="">
</div>
</div>
<div class="form-group">
<label for="c-warehouse_uid" class="control-label col-xs-12 col-sm-2">库管员</label>
<div class="col-xs-12 col-sm-6">
<input id="c-warehouse_uid"
data-source="organization/org_user/getOrgUserInfo"
data-pagination="true"
data-page-size="5"
data-multiple="true"
class="form-control selectpage"
name="row[warehouse_keepers]"
type="text"
value="">
</div>
</div>
<div class="form-group">
<label for="c-name" class="control-label col-xs-12 col-sm-2">仓库名称</label>
<div class="col-xs-12 col-sm-6">
<input id="c-name" data-rule="required" class="form-control" name="row[name]" type="text" value="">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('省市区')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="form-inline" data-toggle="cxselect" data-selects="province,city,area">
<select class="province form-control" name="row[province_code]" data-url="Ajax/ourArea"></select>
<select class="city form-control" name="row[city_code]" data-query-name="province" data-url="Ajax/ourArea"></select>
<select class="area form-control" name="row[district_code]" data-query-name="city" data-url="Ajax/ourArea"></select>
</div>
</div>
</div>
<div class="form-group layer-footer">
<label class="control-label col-xs-12 col-sm-2"></label>
<div class="col-xs-12 col-sm-6">
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
</div>
</div>
</form>
JS层
//二级联动
add: function () {
$("#c-warehouse_uid").data("params", function(){
const organization_id = $("#c-organization_id").val();
return {custom: {organization_id:organization_id}};
});
Controller.api.bindevent();
},
edit: function () {
$("#c-warehouse_uid").data("params", function(){
const organization_id = $("#c-organization_id").val();
return {custom: {organization_id:organization_id}};
});
Controller.api.bindevent();
},
//三级联动例子 其他程序搬运至此,仅供参考,逻辑与二级联动相似,其他多级联动同样如此
add: function () {
$("#c-category_id").data("params", function(){
const brand_id = $("#c-brand_id").val();
return {custom: {brand_id: brand_id}};
});
$("#c-category_id2").data("params", function(){
const category_id = $("#c-category_id").val();
return {custom: {category_id:category_id}};
});
Controller.api.bindevent();
},

本文详细介绍了如何在FastAdmin中实现三级联动的selectpage功能,从控制器代码的编写,到视图层模板的配置,再到JS层的交互逻辑,一步步教你完成这个功能的实现。
6368

被折叠的 条评论
为什么被折叠?



