/** * 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'); } });