Я сделал несколько изменений в вашем коде, чтобы он соответствовал моим потребностям: - категория - это мой "дипломный курс";- подкатегория в этом случае представлена "путями" - мне не нужен вызов "ajax", потому что я все еще на странице!
html:
<div class="form-group col-md-12">
<div class="form-group col-md-6">
<label for="Corso">Corso di Laurea</label>
{{ Form::select('degreeCourses_id', $degreeCourses, null, array('id'=>'degreeCourses_id','class' => 'form-control')) }}
</div>
<div id="sub_cat" class="form-group col-md-6" >
<label for="ruolo">Percorso di Laurea</label>
<select name="paths_id" id="paths_id" class="form-control">
<option value="" disabled="">First Select Category</option>
</select>
</div>
</div>
и js вдохновлен вашим предложением:
$ (документ) .ready (function (e) {
$('#degrees').DataTable();
var deegreeCourses= {!! $paths !!};
//var $optgroups = $('#subcategory > optgroup');
$("#degreeCourses_id").on("change",function(){
var selectedVal = this.value;
var newSelection= new Array();
deegreeCourses.forEach(function(entry) {
if(entry.degreeCourses_id==selectedVal){
newSelection.push(entry);
}
if(newSelection.length==0){
$('select[name="paths_id"]').html('<option value="">Percorsi di laurea assenti</option>').attr("disabled",false);;
}
$('select[name="paths_id"]').html('<option value="">Seleziona un percorso di laurea</option>').attr("disabled",false);;
$.each(newSelection, function(key, value) {
$('select[name="paths_id"]').append('<option value="'+ value.id +'">'+ value.nome +'</option>');
});
});
});
});
Это: var deegreeCourses= {!! $paths !!};
работает, потому что я на странице шаблона laravel / blade.
Что не работает, так это эта часть:
if(newSelection.length==0){
$('select[name="paths_id"]').html('<option value="">no Paths</option>').attr("disabled",false);;
}
, то есть: если нет подкатегории, основанной на степениCoursechoiche сделайте второй выбор с опцией «no data».