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);
    }

  

原文地址:https://www.cnblogs.com/niushuangmeng/p/14142587.html