问题描述
我需要一个有 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');
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)