From 2c46150adb8d79426f4590f50a799ce124d6cf72 Mon Sep 17 00:00:00 2001 From: KONE SOREL Date: Sat, 7 Mar 2026 17:07:02 +0000 Subject: [PATCH] fg --- Js/fonctions.js | 67 ++++++++++++++++++------------------------------- 1 file changed, 24 insertions(+), 43 deletions(-) diff --git a/Js/fonctions.js b/Js/fonctions.js index 949e2d55..4c7ea269 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -47513,60 +47513,41 @@ function afficheDonneesTableChoisie(fichier) { if (!fichier || fichier === '') return; const racineWeb = $("#racineWeb").val(); - const codeLangue = $("#codeLangue").val(); - const $divLister = $('#div_lister_table'); + const $divLister = $('#div_lister_table'); // Ton conteneur principal - // 1. NETTOYAGE RADICAL DU DOM (Anti-doublon) - // On détruit tout ce qui est lié aux plugins avant de vider le div - if ($.fn.DataTable.isDataTable('#tableLister')) { - $('#tableLister').DataTable().destroy(); + // 1. On récupère les valeurs AVANT de vider le div + const valPays = $('#codePays').val(); + const valAnnee = $('#annee').val(); + + // 2. Nettoyage impératif pour éviter les IDs en double dans le DOM + if ($.fn.selectpicker) { + $('.selectpicker').selectpicker('destroy'); + $('.bootstrap-select').remove(); } - $('.selectpicker').selectpicker('destroy'); - $('.bootstrap-select').remove(); // Supprime les résidus graphiques - $divLister.empty(); // Vide proprement le conteneur + $divLister.empty(); - // 2. RÉCUPÉRATION DES PARAMÈTRES - let donnees = {}; - if (fichier === "Ajaxtblisterjoursferiers") { - // On cible les IDs précisément - donnees.codePays = $('#codePays').val(); - donnees.annee = $('#annee').val(); - } - - // 3. LOADER - $divLister.html(` -
-
-

${(codeLangue === "en_US") ? "Loading..." : "Chargement..."}

-
- `); - - // 4. APPEL AJAX + // 3. Appel AJAX $.ajax({ url: racineWeb + fichier + "/", type: 'post', - data: donnees, + data: { codePays: valPays, annee: valAnnee }, success: function(data) { - // Injection des nouvelles données (le PHP doit filtrer via les $_POST reçus) + // 4. On injecte TOUT le bloc (Filtres + Table) $divLister.html(data); - // 5. RÉ-INITIALISATION DES COMPOSANTS + // 5. RÉ-INITIALISATION (L'ordre est vital ici) - // Pour le SelectPicker (Filtre Pays) - if ($('#codePays').length > 0) { - // On ré-initialise proprement - actualiserSelectPicker('#codePays', false); - // On remet la valeur et on rafraîchit l'affichage - $('#codePays').val(donnees.codePays).selectpicker('refresh'); - } + // On ré-habille le SelectPicker injecté + actualiserSelectPicker('#codePays', false); + + // On FORCE la valeur récupérée et on rafraîchit l'affichage + // C'est ce qui fait que le pays choisi reste affiché + $('#codePays').val(valPays).selectpicker('refresh'); + $('#annee').val(valAnnee); - // Pour la DataTable - const nomTable = $("#listetables option:selected").text() || 'Export'; - initDataTableReference('#tableLister', 'Export_' + nomTable.replace(/\s+/g, '_')); - }, - error: function(xhr) { - toastr.error("Erreur AJAX"); - $divLister.html(`
${xhr.statusText}
`); + // 6. On initialise la DataTable + const nomTableRaw = $("#listetables option:selected").text() || 'Jours_Feriers'; + initDataTableReference('#tableLister', 'Export_' + nomTableRaw.trim().replace(/\s+/g, '_')); } }); }