FastAdmin多选下拉框使用方法
添加页面使用方法,这是一个二级联动,当选择分类后,会获取对应的商品
分类是单选,商品是多选
//页面代码
//data-source:接口地址
//data-params='{"id":""}' 自定义参数,商品接口请求的时候会带上id:''
<div class="form-group" id="div-group-id">
<label class="control-label col-xs-12 col-sm-2">分类:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-name" data-rule="required" data-source="zhl/message/gettype" class="form-control selectpage" name="row[name]" type="text" value="">
</div>
</div>
<div class="form-group" id="div-goods_id">
<label class="control-label col-xs-12 col-sm-2">商品:</label>
<div class="col-xs-12 col-sm-8">
<input id="selectpage" data-params='{"id":""}' data-rule="required" data-pagination="true" data-search-field="name" data-page-size="10" data-multiple="true" data-source="zhl/message/selectpage" class="form-control selectpage" name="row[goods_id]" 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">
<input id="c-class_id" data-rule="required" data-source="zhl/message/selectpage1" data-multiple="true" class="form-control selectpage" name="row[goods_id]" type="text" value="{$row.goods_id}">
</div>
</div>
//接口代码
//获取分类
public function gettype()
{
$list = Db::name("zhl_category")->order('id DESC')->select();
$CategoryList = [];
foreach($list as $k=>$v){
$CategoryList[$k]['id'] = $v['id'];//必须是这样的格式,对于返回的数据格式又要求
$CategoryList[$k]['name'] = $v['name'];
}
$data['list'] = $CategoryList;
$data['total'] = count($CategoryList);
return $data;
}
//这个接口在编辑页面获取指定的商品实现多选下拉框默认选中
public function selectpage1()
{
$params = $this->request->post();
if(!empty($params['keyValue'])){//keyValue在编辑页面请求接口会出现这个字段,这个字段就是获取保存的商品ID,判断有值就只获取对应的商品信息
$goods = Goods::where('id','in',$params['keyValue'])->select();
}else{
$goods = Goods::select();
}
$goodlist=[];
foreach($goods as $k=>$v){
$goodlist[$k]['name'] = $v['goodname'];
$goodlist[$k]['id'] = $v['id'];
}
$data['list'] = $goodlist;
$data['total'] = count($goodlist);
return $data;
}
//获取商品,有分类ID就根据分类ID查询,没有就查询全部商品
public function selectpage()
{
$params = $this->request->post();
if(!empty($params['id'])){
$goods = Goods::where('category_id',$params['id'])->select();
}else{
$goods = Goods::select();
}
$goodlist=[];
foreach($goods as $k=>$v){
$goodlist[$k]['name'] = $v['goodname'];//格式也是固定的
$goodlist[$k]['id'] = $v['id'];
}
$data['list'] = $goodlist;
$data['total'] = count($goodlist);
return $data;
}
//js编辑页面用
$("#selectpage").data("params", function (obj) {//点击商品下拉框就会触发这个,获取分类ID,并且赋值,这个时候请求的地址就是 zhl/message/selectpage1?id=获取的分类ID
var id = $('#c-name').val();
return { id: id } ;
});