This commit is contained in:
KONE SOREL 2026-03-07 09:43:00 +00:00
parent 44e281ad6e
commit 3e173357bd

View File

@ -47666,11 +47666,15 @@ function formAjoutTableRef() {
type: 'post',
data: donnees,
success: function(data) {
// Injection du HTML
$('#div_maj_table').html(data);
// SOLUTION RADICALE : On force la réinitialisation
forceInitSelectPicker('#div_maj_table');
// Init composants
// Autres initialisations
$(".datepicker").datepicker({ autoclose: true, format: 'dd/mm/yyyy' });
$(".selectpicker").selectpicker('refresh');
if (typeof stylechampsRequis === "function") stylechampsRequis();
// Focus
setTimeout(() => {
@ -47683,25 +47687,18 @@ function formAjoutTableRef() {
// Filtrer la liste des villes par pays
function filtreVilleParPays() {
const codePays = $('#codePays').val();
const racineWeb = $("#racineWeb").val();
const $divVille = $('#div_ville');
if (!codePays) return;
$.ajax({
url: racineWeb + "Ajaxfiltrevilleparpays/",
url: $("#racineWeb").val() + "Ajaxfiltrevilleparpays/",
type: 'post',
data: { codePays: codePays },
success: function(data) {
// Étape radicale : on vide et on nettoie avant l'injection
$divVille.find('.selectpicker').selectpicker('destroy');
$divVille.empty();
// Injection du nouveau HTML (qui doit contenir le <select>)
// On injecte le nouveau contenu (qui contient le select)
$divVille.html(data);
// Appel de la fonction de reconstruction globale
rafraichirSelectPicker('#div_ville');
// On nettoie et on réinitialise spécifiquement cette zone
forceInitSelectPicker('#div_ville');
}
});
}
@ -91669,4 +91666,30 @@ function rafraichirSelectPicker(selecteurDiv) {
$newSelect.selectpicker('refresh');
$newSelect.selectpicker('render');
}
}
/**
* Nettoie et initialise proprement les SelectPickers dans un conteneur
* @param {string} containerSelector - Le sélecteur du parent (ex: '#div_maj_table')
*/
function forceInitSelectPicker(containerSelector) {
const $container = $(containerSelector);
// 1. Destruction radicale des instances existantes et de leur HTML généré
$container.find('.selectpicker').selectpicker('destroy');
$container.find('.bootstrap-select').remove();
// 2. Ré-initialisation propre sur les éléments <select> présents
$container.find('select.selectpicker').each(function() {
$(this).selectpicker({
liveSearch: true,
style: 'btn-white border-2 border-start-0 fw-bold',
width: '100%',
size: 8,
dropdownAlignRight: 'auto'
});
// 3. Forcer le rafraîchissement du rendu
$(this).selectpicker('refresh');
});
}