在公司下获得经销权

时间:2018-04-17 05:14:48

标签: laravel laravel-5.4 laravel-5.5 laravel-5.6

我有分支索引页面它包含2个下拉菜单,称为公司和经销商,当我点击公司它包含我创建的公司时,点击公司相应的经销商应列在经销商下拉列表中。我直接使用eloqent进入索引页面,因为我无法访问索引页面中的公司和经销商

    Index

 @include('theme.header')

    <?php  use Illuminate\Support\Facades\DB;?>


    <div class="page-content-wrapper ">

        <div class="container-fluid">

            <div class="row">
                <div class="col-sm-12">
                    <div class="page-title-box">
                        <div class="btn-group float-right">

                        </div>
                        <h4 class="page-title">Branch Management</h4>
                    </div>
                </div>
            </div>
            <!-- end page title end breadcrumb -->

            <div class="row">
                <div class="col-12">
                    <div class="card m-b-30">
                        <div class="card-body">

                            <h4 class="mt-0 header-title">Branch</h4>
                            <br>
                            <br>
                            <form id="form" method="post" action="{{route('branch.store')}}">
                                {{csrf_field()}}
                                <div class="form-group row">
                                    <label class="col-sm-2 col-form-label">Company</label>
                                    <div class="col-sm-10">

                                        <select class="form-control" id="company" name="company">

                                            <option>Select Company</option>
                                            @foreach(\App\Company::all()->where('status','0') as $company)
                                                <option value="{{$company->comp_id}}">{{$company->name}}</option>
                                            @endforeach

                                        </select>
                                    </div>
                                </div>
                                <div class="form-group row">
                                    <label class="col-sm-2 col-form-label">Dealership</label>
                                    <div class="col-sm-10">
                                        <select class="form-control" id="dealer" name=" dealer">
                                            <option>Select Dealership</option>
                                            @foreach(\App\Dealership::join('companies','comp_id','=','dealerships.comp_id')->where('status','0') as $dealership)

                                                <option value="{{$dealership->dlr_id}}">{{$dealership->name}}</option>
                                            @endforeach

                                        </select>
                                    </div>
                                </div>

                                <div class="form-group row">
                                    <label for="example-text-input" class="col-sm-2 col-form-label">Email</label>
                                    <div class="col-sm-10">
                                        <input class="form-control" type="email" id="email" name="email" required>
                                    </div>
                                </div>

                                <div class="form-group row">
                                    <label for="example-text-input" class="col-sm-2 col-form-label">Branch Name</label>
                                    <div class="col-sm-10">
                                        <input class="form-control" type="text" id="branch" name="branch" required>
                                    </div>
                                </div>


                                <div class="row">
                                    <div class="col-sm-12">
                                        <div class="page-title-box">
                                            <div class="btn-group float-right">
                                                <button class="btn btn-primary" id="btn_save" data-toggle="modal"
                                                        data-target="#create" type="submit">Save
                                                </button>
                                            </div>
                                        </div>
                                    </div>
                                </div>

                            </form>


                        </div>
                    </div>


     @include('theme.footer')

4 个答案:

答案 0 :(得分:1)

首先是第一件事。您需要更改查询。

Company::where(‘status’, 0)->get();

接下来你错过了下一个下拉列表中的尾随get()。 你为什么不使用关系来查询?

答案 1 :(得分:0)

就像Muhammad Naumann已经说过你必须使用get()方法来获取实际数据:

Company::where(‘status’, 0)->get();

在公司选择字段中,您可以添加onChange之类的事件监听器。在此监听器中,您运行ajax get请求以获取所选公司的经销商。

答案 2 :(得分:0)

我用Ajax想出来了。

  1. 在控制器文件中创建自定义功能。在这种情况下,分支控制器,此函数包含用于检索数据的查询构建器

  2. 写入Ajax,在索引文件中,经销商下拉列表默认为隐藏,当您选择公司时,下拉列表将显示相应的数据。

  3. 索引文件

        @include('theme.header')
    
        <?php  use Illuminate\Support\Facades\DB;?>
        <script language="javascript">
    
    
            /*--- Fliter dealership corressponging company---*/
    
            $(document).ready(function () {
                $('#dealership_div').hide();
    
                $('#company').change(function () {
                    alert('hello');
                    $('#dealership_div').show();
                    let id = this.value;
                    $.ajax({
    
                        url: '/filter_dealer',
                        type: "post",
                        data: {option: id},
                        success: function (data) {
                            $('#dealer')
                                .find('option')
                                .remove()
                                .end()
                                .append(" <option value=''>--- Select dealership ---</option>")
    
                            $.each(data, function (key, value) {
                                $('#dealer')
                                    .append($("<option></option>")
                                        .attr('value', value['dlr_id'])
                                        .text(value['name'])
                                    );
                            });
    
    
                        },
                        error: function () {
                            alert("Error occurred While Processing");
                        }
    
    
                    });
                });
            });
    
    
        </script>
    
        <div class="page-content-wrapper ">
    
            <div class="container-fluid">
    
                <div class="row">
                    <div class="col-sm-12">
                        <div class="page-title-box">
                            <div class="btn-group float-right">
    
                            </div>
                            <h4 class="page-title">Branch Management</h4>
                        </div>
                    </div>
                </div>
                <!-- end page title end breadcrumb -->
    
                <div class="row">
                    <div class="col-12">
                        <div class="card m-b-30">
                            <div class="card-body">
    
                                <h4 class="mt-0 header-title">Branch</h4>
                                <br>
                                <br>
                                <form id="form" method="post" action="{{route('branch.store')}}">
                                    {{csrf_field()}}
                                    <div class="form-group row">
                                        <label class="col-sm-2 col-form-label">Company</label>
                                        <div class="col-sm-10">
    
                                            <select class="form-control" id="company" name="company">
    
                                                <option>Select Company</option>
                                                @foreach(\App\Company::all()->where('status','0') as $company)
                                                    <option value="{{$company->comp_id}}">{{$company->name}}</option>
                                                @endforeach
    
                                            </select>
                                        </div>
                                    </div>
                                    <div class="form-group row" id="dealership_div">
                                        <label class="col-sm-2 col-form-label">Dealership</label>
                                        <div class="col-sm-10">
                                            <select class="form-control" id="dealer" name=" dealer">
    
                                                <option></option>
    
                                            </select>
                                        </div>
                                    </div>
    
                                    <div class="form-group row">
                                        <label for="example-text-input" class="col-sm-2 col-form-label">Email</label>
                                        <div class="col-sm-10">
                                            <input class="form-control" type="email" id="email" name="email" required>
                                        </div>
                                    </div>
    
                                    <div class="form-group row">
                                        <label for="example-text-input" class="col-sm-2 col-form-label">Branch Name</label>
                                        <div class="col-sm-10">
                                            <input class="form-control" type="text" id="branch" name="branch" required>
                                        </div>
                                    </div>
    
    
                                    <div class="row">
                                        <div class="col-sm-12">
                                            <div class="page-title-box">
                                                <div class="btn-group float-right">
                                                    <button class="btn btn-primary" id="btn_save" data-toggle="modal"
                                                            data-target="#create" type="submit">Save
                                                    </button>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
    
                                </form>
    
    
                            </div>
                        </div>
    

    具有自定义功能的分支控制器文件

     public function filter_dealer(Request $request)
        {
            $company_id=$request->input('option');
            $dealership=DB::table('dealerships')->select('dlr_id','name')->where([['comp_id','=',$company_id],['status','=','0']])->get();
            return response()->json($dealership);
    
        }
    

    路线档案

    Route::post('filter_dealer', 'BranchController@filter_dealer')->name('filter_dealer');
    

答案 3 :(得分:-1)

如果要动态更改经销商下拉列表的内容,如果更改公司下拉列表,则应使用javascript,jquery或类似的javascript框架,因为PHP是服务器端脚本语言,需要页面刷新才能更改网页的内容。