Как создать зависимый раскрывающийся список с помощью jquery, ajax и laravel?
Маршруты:
Route::get('get-study-programs/{faculties_id}', 'DisciplinaryResearchesController@getStudyPrograms');
Вид:
<div class="form-group {!! $errors->has('faculties_id') ? 'has-error' : '' !!}">
{!! Form::label('faculties_id', 'Faculty', ['class' => 'col-md-2 control-label']) !!}
<div class="col-md-6">
{!! Form::select('faculties_id', \App\Faculty::pluck('name','id'), null,
['class' => 'js-selectize', 'placeholder' => 'Choose']) !!}
<strong>{!! $errors->first('faculties_id', '<p class="help-block">:message</p>') !!}</strong>
</div>
<div class="form-group {!! $errors->has('study_program_id') ? 'has-error' : '' !!}">
{!! Form::label('study_program_id', 'Study Program', ['class' => 'col-md-2 control-label']) !!}
<div class="col-md-6">
{!! Form::select('study_program_id', [], null,
['class' => 'js-selectize', 'placeholder' => 'Choose']) !!}
<strong>{!! $errors->first('study_program_id', '<p class="help-block">:message</p>') !!}</strong>
</div>
Контроллер:
public function create()
{
$listFaculties = Faculty::lists('name', 'id');
return view('disciplinary_researches.create', compact('listFaculties'));
}
public function getStudyPrograms($faculties_id)
{
$studyPrograms = StudyProgram::where('faculties_id', $faculties_id)->pluck('name', 'id');
$list = '';
foreach ($studyPrograms as $key => $value) {
$list .= "<option value='" . $key . "'>" . $value . "</option>";
}
return $list;
}
JavaScript:
<script type="text/javascript">
$('#faculties_id').on('change', function () {
getStudyPrograms($(this).val());
});
function getStudyPrograms(faculties_id) {
$.get('{{ url('/get-study-programs')}}/'+faculties_id, function (data) {
$("#study_program_id").html(data);
});
}
$(document).ready(function () {
getStudyPrograms($('#faculties_id').val());
});
но при запуске кода выше я обнаружил ошибку в GET http: // localhost / get-study-programs 404 (Not Found)
, и это исходный URL http://localhost/lab/public/disciplinary-research/create
, что не так в моем коде выше?
спасибо, кто ответил, и это очень полезно