From 6b2bd0964b5bd2d17dd6f3441547aa81005fdf6f Mon Sep 17 00:00:00 2001 From: Claudio Date: Thu, 28 Aug 2025 10:25:12 +0200 Subject: [PATCH] fixed dropdown selection --- public/userarea/historical_trf.php | 46 +++++++----- public/userarea/import_edit2.php | 109 ++++++++++++++++++----------- 2 files changed, 96 insertions(+), 59 deletions(-) diff --git a/public/userarea/historical_trf.php b/public/userarea/historical_trf.php index 4162091..ad9ca08 100644 --- a/public/userarea/historical_trf.php +++ b/public/userarea/historical_trf.php @@ -630,9 +630,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
-
- -
+
fetchAll(PDO::FETCH_ASSOC) as $row) { $index = $mainFieldMapping['is_manual'] ? "manual_0" : "auto_0"; echo "
"; if ($mainFieldMapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; echo ""; @@ -671,7 +670,8 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($mapping['is_required']) $inputClass .= ' required-input'; echo "
"; if ($mapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; echo ""; @@ -694,7 +694,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($mapping['is_required']) $inputClass .= ' required-input'; echo "
"; if ($mapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; echo ""; @@ -793,7 +793,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { $indexField = $mainFieldMapping['is_manual'] ? "manual_0" : "auto_0"; echo "
"; if ($mainFieldMapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; } elseif ($mainFieldMapping['data_type'] === 'DATE') { @@ -818,7 +818,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($mapping['is_required']) $inputClass .= ' required-input'; echo "
"; if ($mapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; } elseif ($mapping['data_type'] === 'DATE') { @@ -848,7 +848,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($mapping['is_required']) $inputClass .= ' required-input'; echo "
"; if ($mapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; } elseif ($mapping['data_type'] === 'DATE') { @@ -1065,6 +1065,10 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { inputs.forEach(input => { const name = input.name.replace(`rows[${rowIndex}]`, '').replace(/\[|\]/g, ''); formData.append(name, input.value); + // Aggiorna data-selected-value per i dropdown + if (input.tagName === 'SELECT' && input.classList.contains('dropdown-select')) { + input.setAttribute('data-selected-value', input.value); + } }); formData.append('iddatadb', iddatadb); formData.append('mapping', JSON.stringify()); @@ -1083,7 +1087,6 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { }); setTimeout(() => cells.forEach(cell => cell.classList.remove('flash-success')), 500); alert('Salvataggio avvenuto con successo!'); - setTimeout(populateDropdowns, 100); } else { alert('Errore durante il salvataggio: ' + data.message); } @@ -1113,6 +1116,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { if (targetInput && !targetInput.hasAttribute('readonly')) { targetInput.value = value; if (targetInput.tagName === 'SELECT') { + targetInput.setAttribute('data-selected-value', value); const event = new Event('change'); targetInput.dispatchEvent(event); } @@ -1274,34 +1278,38 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { dropdowns.forEach(dropdown => { const fieldId = dropdown.getAttribute('data-field-id'); const mappingId = dropdown.getAttribute('data-mapping-id'); + const selectedValue = dropdown.getAttribute('data-selected-value') || ''; const currentValue = dropdown.value || ''; - console.log(`Popolamento dropdown field_id=${fieldId}, mapping_id=${mappingId}, valore corrente=${currentValue}`); + console.log(`Popolamento dropdown field_id=${fieldId}, mapping_id=${mappingId}, valore corrente=${currentValue}, valore selezionato=${selectedValue}`); if (!fieldId || !dropdownData[fieldId]) { dropdown.innerHTML = ''; return; } + // Preserva il valore corrente o usa quello salvato dropdown.innerHTML = ''; dropdownData[fieldId].forEach(value => { const option = document.createElement('option'); option.value = value.IdCustomFieldsValue; option.textContent = value.Valore; - if (currentValue === String(value.IdCustomFieldsValue)) { + // Dai priorità a data-selected-value per il caricamento iniziale + if (selectedValue === String(value.IdCustomFieldsValue)) { + option.selected = true; + } else if (currentValue === String(value.IdCustomFieldsValue)) { option.selected = true; } dropdown.appendChild(option); }); + + // Verifica se il valore selezionato esiste tra le opzioni + if ((selectedValue || currentValue) && dropdown.value !== (selectedValue || currentValue)) { + dropdown.value = ''; + console.warn(`Valore ${selectedValue || currentValue} non trovato per fieldId ${fieldId}`); + } }); } populateDropdowns(); - saveButtons.forEach(btn => { - btn.addEventListener('click', function() { - if (!this.hasAttribute('disabled')) { - setTimeout(populateDropdowns, 100); - } - }); - }); }); diff --git a/public/userarea/import_edit2.php b/public/userarea/import_edit2.php index 753a402..359114f 100644 --- a/public/userarea/import_edit2.php +++ b/public/userarea/import_edit2.php @@ -386,6 +386,11 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { width: 50px; box-sizing: border-box; } + + .flash-success { + background-color: #d4edda !important; + transition: background-color 0.3s ease; + } Edit Imported Data - <?= htmlspecialchars($titlewebsite, ENT_QUOTES, 'UTF-8'); ?> @@ -428,7 +433,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { $inputClass = $mainFieldMapping['is_manual'] ? 'manual-input' : 'auto-input'; if ($mainFieldMapping['is_required']) $inputClass .= ' required-input'; if ($mainFieldMapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; echo ""; @@ -455,7 +460,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($mapping['is_required']) $inputClass .= ' required-input'; if ($mapping['data_type'] === 'SceltaMultipla') { echo "
"; - echo ""; echo ""; echo ""; echo ""; @@ -478,7 +483,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($mapping['is_required']) $inputClass .= ' required-input'; echo "
"; if ($mapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; } elseif ($mapping['data_type'] === 'DATE') { @@ -560,7 +565,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { ?>
- > @@ -592,7 +597,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($mapping['is_required']) $inputClass .= ' required-input'; echo "
"; if ($mapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; } elseif ($mapping['data_type'] === 'DATE') { @@ -621,7 +626,7 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { if ($mapping['is_required']) $inputClass .= ' required-input'; echo "
"; if ($mapping['data_type'] === 'SceltaMultipla') { - echo ""; echo ""; echo ""; } elseif ($mapping['data_type'] === 'DATE') { @@ -718,35 +723,6 @@ foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { }); - -