获得一家公司的经销权

Get dealership under a company

我有分支索引页面,它包含 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')

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

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

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

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

正如 Muhammad Naumann 所说,您必须使用 get() 方法来获取实际数据:

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

在公司 select 字段中,您可以添加事件侦听器,例如 onChange。在此侦听器中,您 运行 收到 ajax 请求以获取 selected 公司的经销商。

我用 Ajax 弄明白了。

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

  2. 写入Ajax,在索引文件中,dealership下拉框默认隐藏,当你select公司时,下拉框会显示相应的数据。

索引文件

    @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');