diff --git a/Js/fonctions.js b/Js/fonctions.js index 4c7ea269..73ca9926 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -47513,41 +47513,43 @@ function afficheDonneesTableChoisie(fichier) { if (!fichier || fichier === '') return; const racineWeb = $("#racineWeb").val(); - const $divLister = $('#div_lister_table'); // Ton conteneur principal + const $divLister = $('#div_lister_table'); - // 1. On récupère les valeurs AVANT de vider le div - const valPays = $('#codePays').val(); - const valAnnee = $('#annee').val(); + // 1. On mémorise les valeurs actuelles avant le refresh + const paysSelectionne = $('#codePays').val(); + const anneeSelectionnee = $('#annee').val(); - // 2. Nettoyage impératif pour éviter les IDs en double dans le DOM - if ($.fn.selectpicker) { - $('.selectpicker').selectpicker('destroy'); - $('.bootstrap-select').remove(); - } - $divLister.empty(); - - // 3. Appel AJAX + // 2. Appel AJAX $.ajax({ url: racineWeb + fichier + "/", type: 'post', - data: { codePays: valPays, annee: valAnnee }, + data: { + codePays: paysSelectionne, + annee: anneeSelectionnee + }, success: function(data) { - // 4. On injecte TOUT le bloc (Filtres + Table) + // 3. On remplace tout le bloc $divLister.html(data); - // 5. RÉ-INITIALISATION (L'ordre est vital ici) - - // 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); + // 4. RÉ-INITIALISATION DU SELECT (Indispensable pour le look Neutral Pro) + // On utilise le sélecteur standard de bootstrap-select + if ($('#codePays').length > 0) { + // On détruit l'ancien qui vient d'être injecté "mort" et on le recrée + $('#codePays').selectpicker('destroy'); + actualiserSelectPicker('#codePays', false); + + // On lui redonne sa valeur et on rafraîchit l'affichage + $('#codePays').val(paysSelectionne).selectpicker('refresh'); + $('#annee').val(anneeSelectionnee); + } - // 6. On initialise la DataTable - const nomTableRaw = $("#listetables option:selected").text() || 'Jours_Feriers'; - initDataTableReference('#tableLister', 'Export_' + nomTableRaw.trim().replace(/\s+/g, '_')); + // 5. INITIALISATION DATATABLE + // On s'assure que l'ancien ID n'existe plus en mémoire + if ($.fn.DataTable.isDataTable('#tableLister')) { + $('#tableLister').DataTable().destroy(); + } + + initDataTableReference('#tableLister', 'Referentiel_Jours_Feriers'); } }); }