This commit is contained in:
KONE SOREL 2026-03-11 15:54:07 +00:00
parent 896682efaf
commit 049ed8eb46
2 changed files with 25 additions and 22 deletions

View File

@ -48120,38 +48120,41 @@ function filtreTableReference(numeroTable) {
const racineWeb = $("#racineWeb").val(); const racineWeb = $("#racineWeb").val();
const $divListe = $("#div_listetables"); const $divListe = $("#div_listetables");
// 1. On détruit proprement l'instance actuelle si elle existe // 1. DESTRUCTION TOTALE de l'existant
if ($('#listetables').data('selectpicker')) { if ($("#listetables").length) {
$('#listetables').selectpicker('destroy'); $("#listetables").selectpicker('destroy'); // Tue l'instance JS
} }
// Supprime physiquement tous les menus détachés du body
// 2. On supprime physiquement les menus orphelins dans le body (le conteneur généré)
$('.bootstrap-select.bs-container').remove(); $('.bootstrap-select.bs-container').remove();
// Vide le conteneur pour repartir de zéro
// Nettoyage des zones $divListe.empty();
$("#div_lister_table").empty();
$('#div_maj_table').empty();
$.ajax({ $.ajax({
url: racineWeb + "Ajaxfiltretablesreference/", url: racineWeb + "Ajaxfiltretablesreference/",
type : 'post', type : 'post',
data: { numeroTable: numeroTable }, data: { numeroTable: numeroTable },
success: function(data) { success: function(data) {
// 3. Injection du HTML (le select sans la classe selectpicker) // 2. INJECTION du HTML (assurez-vous que le PHP n'a plus la classe 'selectpicker')
$divListe.html(data); $divListe.html(data);
// 4. Initialisation manuelle UNIQUE // 3. INITIALISATION DIFFÉRÉE
const $select = $("#listetables"); // On attend que le navigateur ait fini de dessiner le DOM
$select.selectpicker({
liveSearch: true,
size: 10,
container: 'body'
});
// Focus UX Neutral Pro
setTimeout(function() { setTimeout(function() {
$divListe.find('.bootstrap-select .dropdown-toggle').focus(); const $select = $("#listetables");
}, 200);
// On vérifie une dernière fois pour éviter le double emploi
if (!$select.parent().hasClass('bootstrap-select')) {
$select.selectpicker({
liveSearch: true,
size: 10,
container: 'body',
width: '100%' // Force la largeur pour éviter les sauts visuels
});
}
// Focus UX
$divListe.find('.dropdown-toggle').focus();
}, 150);
} }
}); });
} }

View File

@ -1,3 +1,3 @@
<select name="listetables" id="listetables" class="form-control selectpicker" data-live-search="true" onchange="chargerFichiersTable();" autofocus> <select name="listetables" id="listetables" class="form-control" data-live-search="true" onchange="chargerFichiersTable();">
<?= liste_options($autrestables, '', false) ?> <?= liste_options($autrestables, '', false) ?>
</select> </select>