Это не изменится, потому что ваши категории находятся на стороне сервера, но вы меняете код на стороне клиента, ваш код на стороне не знает, какая подкатегория принадлежит какой категории ,
Чтобы решить эту проблему, вам нужно выполнить ajax-вызов, чтобы получить подкатегории, принадлежащие текущей активной категории, чтобы вы могли сделать что-то вроде этого:
<script>
$(document).ready(function(){
var $optgroups = $('#subcategory > optgroup');
$("#category").on("change",function(){
var selectedVal = this.value;
// Retrieve all sub-categories of the current category
$.ajax({
url: "api/categories/" + selectedVal,
dataType: "json"
}).done(function(subCategories) {
// Your API must return the sub-categories in Json format
$.each(subCategories, function( index, category ) {
$('#subcategory').append("<optgroup label=" + category.id + ">
<option value='" + category.id + "'>" + category.name +"</option>
</optgroup>");
});
});
});
});
</script>
Тем не менее, я не тестировал приведенный выше код, поэтому вы могли ожидать некоторые ошибки. Но вы должны быть в состоянии улучшить его, чтобы удовлетворить ваши потребности. Гудлак.