记录:实现fastadmin 两级联动效果
后端代码:
ajax控制器
/**
* 读取年级数据,联动列表
*/
public function grade()
{
$status = $this->request->get('status', '');
$where = ['shop_id' => SHOP_ID];
$gradelist = null;
if ($status) {
$where['status'] = $status;
}
$gradelist = Db::name('grade')->where($where)->field('id as value,name')->order('weigh desc,id desc')->select();
$this->success('', '', $gradelist);
}
/**
* 读取班级数据,联动列表
*/
public function gradeClass()
{
$status = $this->request->get('status', '');
$grade_id = $this->request->get('grade_id', '');
$where = ['shop_id' => SHOP_ID];
$gradelist = null;
if ($grade_id || $grade_id != 0) {
$where['grade_id'] = $grade_id;
if ($status) {
$where['status'] = $status;
}
$gradelist = Db::name('grade_class')->where($where)->field('id as value,name')->order('weigh desc,id desc')->select();
}
$this->success('', '', $gradelist);
}
HTML代码:
<!-- 方式一:一行展示 -->
<!-- <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="first,second">
<select class="first form-control" style="padding: 6px 25px 6px 20px;" data-rule="required" name="row[grade_id]" data-url="ajax/grade?status=normal"></select>
<select class="second form-control" style="padding: 6px 25px 6px 20px;" data-rule="required" name="row[grade_class_id]" data-url="ajax/gradeClass?status=normal" data-query-name="grade_id"></select>
</div>
</div>
</div> -->
<!-- 方式二:两行展示 -->
<div data-toggle="cxselect" data-selects="first,second">
<div class="form-group col-xs-12 col-sm-6">
<label class="control-label col-xs-12 col-sm-4">{:__('Grade_id')}:</label>
<div class="col-xs-12 col-sm-8">
<select class="first form-control" style="padding: 6px 25px 6px 20px;" data-rule="required" name="row[grade_id]" data-url="ajax/grade?status=normal">
<!-- 默认选中 -->
<option value="{$row.grade_id|htmlentities}" selected=""></option>
</select>
</div>
</div>
<div class="form-group col-xs-12 col-sm-6">
<label class="control-label col-xs-12 col-sm-4">{:__('Grade_class_id')}:</label>
<div class="col-xs-12 col-sm-8">
<select class="second form-control" style="padding: 6px 25px 6px 20px;" data-rule="required" name="row[grade_class_id]" data-url="ajax/gradeClass?status=normal" data-query-name="grade_id">
<!-- 默认选中 -->
<option value="{$row.grade_class_id|htmlentities}" selected=""></option>
</select>
</div>
</div>
</div>
方式一页面效果:
方式二页面效果: