diff --git a/public/userarea/mapping_template_xls_scheme2.php b/public/userarea/mapping_template_xls_scheme2.php index 145e76d..e1e91d8 100644 --- a/public/userarea/mapping_template_xls_scheme2.php +++ b/public/userarea/mapping_template_xls_scheme2.php @@ -665,6 +665,61 @@ $xlsHeaders = $template['xls_headers'] ? json_decode($template['xls_headers'], t loadDropdownsWithOverlay(); + // ======================= + // SAVE: SceltaMultipla dropdown (Select2-safe) + // ======================= + + // 1) listener nativo a livello document (più robusto del delegation su tbody) + document.addEventListener('change', function(event) { + const el = event.target; + if (!(el && el.matches && el.matches('select.manual-default.dropdown-select'))) return; + + const tr = el.closest('tr'); + const mappingId = + el.getAttribute('data-id') || + tr?.querySelector('.mapping-select')?.getAttribute('data-id'); + + const xlsSelect = tr?.querySelector('.xls-columns'); + + console.log('[SceltaMultipla change] saving', { + mappingId, + value: el.value + }); + + if (!mappingId) { + console.error('❌ Missing mappingId for SceltaMultipla dropdown'); + return; + } + + saveMapping(mappingId, 'manual', el.value, xlsSelect ? xlsSelect.value : null); + }); + + // 2) eventi Select2 (quando Select2 “mangia” il change) + if (window.jQuery) { + $(document).on('select2:select select2:clear', 'select.manual-default.dropdown-select', function() { + const el = this; + const tr = el.closest('tr'); + const mappingId = + el.getAttribute('data-id') || + tr?.querySelector('.mapping-select')?.getAttribute('data-id'); + + const xlsSelect = tr?.querySelector('.xls-columns'); + + console.log('[SceltaMultipla select2] saving', { + mappingId, + value: el.value + }); + + if (!mappingId) { + console.error('❌ Missing mappingId for SceltaMultipla dropdown (select2)'); + return; + } + + saveMapping(mappingId, 'manual', el.value, xlsSelect ? xlsSelect.value : null); + }); + } + + async function loadClientAndSchemaNames() { if ( > 0) { let response = await fetch(`get_clienti.php?id=`);