diff --git a/Js/fonctions.js b/Js/fonctions.js index 956be31e..16019103 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -48120,35 +48120,35 @@ function filtreTableReference(numeroTable) { const racineWeb = $("#racineWeb").val(); const $divListe = $("#div_listetables"); - // 1. Avant tout, on nettoie les résidus du SelectPicker dans le BODY - // Bootstrap-select ajoute une div .bootstrap-select à la fin du body quand container:body est utilisé - $('.bootstrap-select.dropdown.bs-container').remove(); + // 1. On détruit proprement l'instance actuelle si elle existe + if ($('#listetables').data('selectpicker')) { + $('#listetables').selectpicker('destroy'); + } + + // 2. On supprime physiquement les menus orphelins dans le body (le conteneur généré) + $('.bootstrap-select.bs-container').remove(); - // Nettoyage des zones de contenu - $("#div_lister_table").html(""); - $('#div_maj_table').html(""); + // Nettoyage des zones + $("#div_lister_table").empty(); + $('#div_maj_table').empty(); $.ajax({ url: racineWeb + "Ajaxfiltretablesreference/", type : 'post', data: { numeroTable: numeroTable }, success: function(data) { - // 2. On injecte le nouveau HTML (le select natif) + // 3. Injection du HTML (le select sans la classe selectpicker) $divListe.html(data); - // 3. On initialise proprement + // 4. Initialisation manuelle UNIQUE const $select = $("#listetables"); - - // Sécurité : on s'assure qu'il n'y a pas d'instance résiduelle sur l'élément lui-même - $select.selectpicker('destroy'); - $select.selectpicker({ liveSearch: true, size: 10, - container: 'body' + container: 'body' }); - // 4. Focus UX Neutral Pro + // Focus UX Neutral Pro setTimeout(function() { $divListe.find('.bootstrap-select .dropdown-toggle').focus(); }, 200); diff --git a/Vue/Ajaxfiltretablesreference/index.php b/Vue/Ajaxfiltretablesreference/index.php index 6e5b8740..6f3f8f6f 100755 --- a/Vue/Ajaxfiltretablesreference/index.php +++ b/Vue/Ajaxfiltretablesreference/index.php @@ -1 +1,3 @@ - + \ No newline at end of file