fg
This commit is contained in:
parent
23fe5db9fd
commit
2c46150adb
|
|
@ -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(`
|
||||
<div class="text-center p-5">
|
||||
<div class="spinner-border text-primary" role="status"></div>
|
||||
<p class="mt-2 text-muted fw-bold italic">${(codeLangue === "en_US") ? "Loading..." : "Chargement..."}</p>
|
||||
</div>
|
||||
`);
|
||||
|
||||
// 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(`<div class="alert alert-danger">${xhr.statusText}</div>`);
|
||||
// 6. On initialise la DataTable
|
||||
const nomTableRaw = $("#listetables option:selected").text() || 'Jours_Feriers';
|
||||
initDataTableReference('#tableLister', 'Export_' + nomTableRaw.trim().replace(/\s+/g, '_'));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user