This commit is contained in:
KONE SOREL 2026-03-07 12:31:11 +00:00
parent ae5c830851
commit b1e3ee089f

View File

@ -47684,30 +47684,18 @@ function formAjoutTableRef() {
// Filtrer la liste des villes par pays
function filtreVilleParPays() {
const codePays = $('#codePays').val();
const $selectVille = $('#codeVille');
if (!codePays) return;
$.ajax({
url: $("#racineWeb").val() + "Ajaxfiltrevilleparpays/",
type: 'post',
data: { codePays: codePays },
data: { codePays: $('#codePays').val() },
success: function(htmlOptions) {
// 1. ÉTAPE CRUCIALE : On détruit l'attribut title qui cause le doublon dans le bouton
$selectVille.removeAttr('title').prop('title', '');
// 2. On vide physiquement les options
$selectVille.empty();
// 3. On injecte les nouvelles options (venant du PHP)
$selectVille.append(htmlOptions);
// On vide et on remplace les options (on ne touche pas au select lui-même)
$selectVille.empty().append(htmlOptions);
// 4. On force le SelectPicker à se réinitialiser SANS cumuler les textes
$selectVille.selectpicker('refresh');
// 5. On force la valeur à vide pour que le placeholder s'affiche proprement une seule fois
$selectVille.selectpicker('val', '');
// On appelle notre fonction de sécurité
actualiserSelectPicker('#codeVille');
}
});
}
@ -91655,23 +91643,28 @@ function initDataTableReference(selector, exportTitle = 'Export_Donnees') {
function actualiserSelectPicker(selector) {
$(selector).each(function() {
const $el = $(this);
// 1. On détruit proprement l'instance existante
if ($el.data('selectpicker')) {
$el.selectpicker('destroy');
// 1. ÉTAPE RADICALE : On supprime l'attribut title qui cause le doublon visuel
$el.removeAttr('title').prop('title', '');
// 2. On vérifie si l'instance existe déjà
if (!$el.data('selectpicker')) {
// Initialisation propre
$el.selectpicker({
liveSearch: true,
style: 'btn-white border-2 border-start-0 fw-bold',
width: '100%',
size: 8,
noneSelectedText: $("#codeLangue").val() === 'en_US' ? '-- Select --' : '-- Sélectionner --'
});
} else {
// Simple mise à jour des données (sans recréer le bouton)
$el.selectpicker('refresh');
}
// 3. On force la valeur à vide si rien n'est sélectionné pour nettoyer l'affichage
if(!$el.val()) {
$el.selectpicker('val', '');
}
// 2. ÉTAPE RADICALE : On supprime les div résidus du plugin
// C'est ce qui empêche le texte de doubler
$el.siblings('.bootstrap-select').remove();
// 3. On ré-initialise avec tes paramètres
$el.selectpicker({
liveSearch: true,
style: 'btn-white border-2 border-start-0 fw-bold',
width: '100%',
size: 8,
noneSelectedText: $("#codeLangue").val() === 'en_US' ? '-- Select --' : '-- Sélectionner --'
});
});
}