From 89b0ca3817972f5a2c502316f030e4f2f90fd2cc Mon Sep 17 00:00:00 2001 From: KONE SOREL Date: Thu, 9 Apr 2026 15:26:23 +0000 Subject: [PATCH] sza --- Js/fonctions.js | 37 ++++--- Vue/Ajaxbaremelettrecle/detailactes.php | 126 ++++++++++++------------ 2 files changed, 89 insertions(+), 74 deletions(-) diff --git a/Js/fonctions.js b/Js/fonctions.js index 028820af..edee82d8 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -92914,7 +92914,7 @@ async function detail_baremeacte_lettre_cle(idInitial, lettre) { * * @param {number|string} idInitial - ID du barème initial (idActesbaremeinitiallettrecle) * @param {string} lettre - La lettre clé concernée (ex: 'K', 'B', 'V') */ -async function chargerContenuDetailActe(idInitial, lettre) { +async function chargerContenuDetailActe(idInitial, lettre, mode = 'complet') { const racineWeb = document.getElementById("racineWeb").value; const codeLangue = document.getElementById("codeLangue")?.value || 'fr_FR'; const modalContainer = document.getElementById("div_detail_bareme_actes"); @@ -92926,14 +92926,26 @@ async function chargerContenuDetailActe(idInitial, lettre) { try { const response = await fetch(url, { method: "POST", body: formData }); - if (!response.ok) throw new Error(`Erreur réseau : ${response.status}`); - const html = await response.text(); - - // Injection du HTML - modalContainer.innerHTML = html; - // Réinitialisation de DataTable + if (mode === 'complet') { + // OUVERTURE INITIALE : On injecte tout le HTML (Structure + Tableau) + modalContainer.innerHTML = html; + } else { + // ACTUALISATION APRÈS SUPPRESSION : + // On extrait seulement la zone du tableau du HTML reçu + const parser = new DOMParser(); + const doc = parser.parseFromString(html, 'text/html'); + const nouveauContenuTableau = doc.getElementById('div_table_detail_lettrecle'); + + if (nouveauContenuTableau) { + // On ne remplace que l'intérieur de la zone cible + const zoneCible = document.getElementById('div_table_detail_lettrecle'); + zoneCible.innerHTML = nouveauContenuTableau.innerHTML; + } + } + + // Réinitialisation de DataTable (Indispensable après injection) setTimeout(() => { if ($.fn.DataTable.isDataTable('#table_detail_actes')) { $('#table_detail_actes').DataTable().destroy(); @@ -92946,14 +92958,13 @@ async function chargerContenuDetailActe(idInitial, lettre) { : "//cdn.datatables.net/plug-ins/1.13.6/i18n/fr-FR.json" }, "pageLength": 10, - "responsive": true, - "dom": "<'row mb-3'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>rtip" + "dom": "<'row mb-3'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>rtip", + "responsive": true }); - }, 50); // Délai réduit pour plus de réactivité + }, 100); } catch (error) { - console.error("Erreur chargement :", error); - alert_ebene("Erreur de chargement", "Loading error"); + console.error("Erreur de rafraîchissement :", error); } } @@ -92982,7 +92993,7 @@ function supprimer_baremeacte_lettre_cle_detail(adminProd, idActe) { const lettre = $("#lettreCle").val(); // ON ACTUALISE JUSTE LE TABLEAU - chargerContenuDetailActe(idInitial, lettre); + chargerContenuDetailActe(idInitial, lettre, 'refresh'); } }); } diff --git a/Vue/Ajaxbaremelettrecle/detailactes.php b/Vue/Ajaxbaremelettrecle/detailactes.php index 7b5130aa..d574bed5 100644 --- a/Vue/Ajaxbaremelettrecle/detailactes.php +++ b/Vue/Ajaxbaremelettrecle/detailactes.php @@ -6,74 +6,78 @@