/**
* AJAX dependent dropdown for feature values in admin form.
*/
$(document).ready(function () {
var $featureSelect = $('select[name="id_feature"]');
var $valueSelect = $('select[name="id_feature_value"]');
if (!$featureSelect.length || !$valueSelect.length) {
return;
}
// Build AJAX base URL from current page URL
var baseUrl = window.location.href.split('#')[0];
// Strip existing query noise and keep controller + token
var preselectedValue = $valueSelect.data('selected') || $valueSelect.val();
$featureSelect.on('change', function () {
var idFeature = $(this).val();
if (!idFeature) {
$valueSelect.empty().append('');
return;
}
// Use the current page URL, append ajax params
var ajaxUrl = baseUrl + '&ajax=1&action=getFeatureValues&id_feature=' + idFeature;
$.ajax({
url: ajaxUrl,
type: 'GET',
dataType: 'json',
success: function (data) {
$valueSelect.empty();
if (data && data.length) {
$.each(data, function (i, item) {
var selected = (item.id_feature_value == preselectedValue) ? ' selected' : '';
$valueSelect.append(
''
);
});
preselectedValue = null;
} else {
$valueSelect.append('');
}
},
error: function (xhr, status, error) {
console.error('[customfeaturetab] AJAX error:', status, error);
}
});
});
if ($featureSelect.val()) {
$featureSelect.trigger('change');
}
});