Laravel 8 中的相关下拉列表

我需要一个有 4 个级别的依赖下拉列表。首先我尝试了两个级别,但没有用。我尝试了一些编码,但都很难列出第二个下拉列表。任何人都可以帮助我吗? jQuery 中的任何问题?附上我的代码,

控制器

控制器名称 - SubjectController

public function getDepartments($id) 
    {        
        $departments = DB::table("departments")->where("faculty_id",$id)
->pluck("department_name","id");
        return json_encode($departments);
    }

public function getFaculties()
        {
            $faculties = DB::table('faculties')->pluck("faculty_name","id");
            return view('pages/subject/view-subject',compact('faculties'));
        }

查看

 <div class="col-md-4">
                              <label for="faculty">Select Faculty</label>
                                <select class="form-control m-b"  name="faculty">
                                    <option value="">  Faculty </option>
                                    @foreach ($faculties as $key => $value)
                                    <option value="{{ $key }}"> {{ $value }} </option>
                                    @endforeach
                                  </select>
                              </div>
                                                                            
                            <div class="col-md-4">
                              <label for="department">Select Department:</label>
                                <select class="form-control m-b" name="department">
                                    <option>Department</option>                                   
                                </select>
                            </div>  

<script type="text/javascript">
  jQuery(document).ready(function ()
  {
          jQuery('select[name="faculty"]').on('change',function(){
             var facultyID = jQuery(this).val();
             if(facultyID)
             {
                jQuery.ajax({
                   url : 'pages/subject/view-subject/getDepartments' +facultyID,type : "GET",dataType : "json",success:function(data)
                   {
                      console.log(data);                     
                      jQuery('select[name="department"]').empty();
                      jQuery.each(data,function(key,value){
                         $('select[name="department"]').append('<option value="'+ key +'">'+ value +'</option>');
                      });
                   }
                });
             }
             else
             {
                $('select[name="department"]').empty();
             }
          });
  });
  </script>

数据库 两个表用于过滤

public function up()
    {
        Schema::create('faculties',function (Blueprint $table) {
            $table->id();
            $table->string('faculty_name'); 
            $table->timestamps();
        });
    }

 public function up()
    {
        Schema::create('departments',function (Blueprint $table) {
            $table->id();
            $table->string('department_name');
            $table->unsignedBigInteger('faculty_id');
            $table->foreign('faculty_id')->references('id')->on('faculties'); 
            $table->timestamps();
        });
    }

网页

Route::get('pages/subject/view-subject','App\Http\Controllers\SubjectController@getFaculties')->name('pages/subject/view-subject');

Route::get('pages/subject/view-subject/getDepartments{id}','App\Http\Controllers\SubjectController@getDepartments')->name('getDepartments');
benmoke 回答:Laravel 8 中的相关下拉列表

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/530.html

大家都在问