fastadmin下拉框联动,地址表加另一个关联表
新增页面:add.html
<div data-toggle="cxselect" data-selects="province,city,area,engineer">
<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">
<select class="province form-control" name="row[province_id]" data-url="ajax/area" data-rule="required" ></select>
<select class="city form-control" name="row[city_id]" data-query-name="province"
data-url="ajax/area" data-rule="required" ></select>
<select class="area form-control" name="row[area_id]" data-query-name="city"
data-url="ajax/area" data-rule="required" ></select>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Address')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-address" class="form-control" name="row[address]" type="text" data-rule="required">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">客户姓名:</label>
<div class="col-xs-12 col-sm-4">
<input id="c-link_name" class="form-control" name="row[link_name]" type="text" data-rule="required">
</div>
</div>
<div class="form-group">
<label for="c-phone" class="control-label col-xs-12 col-sm-2">电话:</label>
<div class="col-xs-12 col-sm-4">
<input id="c-phone" class="form-control" name="row[phone]" type="text" data-rule="required">
</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">
<select class="engineer form-control" name="row[engineer_id]" data-url="ajax/engineer"
data-query-name="area" data-rule="required">
</select>
</div>
</div>
</div>
控制器:Ajax.php
/**
* 读取分类数据,联动列表
*/
public function engineer()
{
$province = $this->request->get('province', '');
$city = $this->request->get('city', '');
$area = $this->request->get('area');
$where = [];
if ($province !== '' && $city !== '' && $area !== '') {
$where['province_id'] = $province;
$where['city_id'] = $city;
$where['area_id'] = $area;
}
if ($area) {
$where['area_id'] = $area;
}
$engineerlist = Db::name('engineers')->where($where)->field('id as value,name,beizhu,mobile')->select();
foreach ($engineerlist as $key => $value) {
$engineerlist[$key]['name'] = $value['name'] . '(' . $value['beizhu'] . $value['mobile'].')';
unset($engineerlist[$key]['beizhu']);
unset($engineerlist[$key]['mobile']);
}
$this->success('', '', $engineerlist);
}
/**
* 读取省市区数据,联动列表
*/
public function area()
{
$params = $this->request->get("row/a");
if (!empty($params)) {
$province = isset($params['province']) ? $params['province'] : '';
$city = isset($params['city']) ? $params['city'] : '';
} else {
$province = $this->request->get('province', '');
$city = $this->request->get('city', '');
}
$where = ['pid' => 0, 'level' => 1];
$provincelist = null;
if ($province !== '') {
$where['pid'] = $province;
$where['level'] = 2;
if ($city !== '') {
$where['pid'] = $city;
$where['level'] = 3;
}
}
$provincelist = Db::name('area')->where($where)->field('id as value,name')->select();
$this->success('', '', $provincelist);
}

浙公网安备 33010602011771号