This commit is contained in:
KONE SOREL 2026-03-07 13:14:07 +00:00
parent 9c546fc180
commit ab732de1db
2 changed files with 23 additions and 11 deletions

View File

@ -190,9 +190,8 @@ function contruireParamLike($param)
}
function liste_options($liste, $val_def, $strict = false) {
// On met le libellé directement dans l'option vide
$libelle_def = (est_anglophone()) ? "-- Select --" : "-- Sélectionner --";
$select = $strict ? '' : '<option value="">' . $libelle_def . '</option>';
// On laisse l'option vide de texte. C'est le JS qui gérera l'affichage.
$select = $strict ? '' : '<option value="" selected></option>';
foreach ($liste as $option):
$selected = ($val_def == $option["code"]) ? ' selected' : '';

View File

@ -47685,16 +47685,22 @@ function formAjoutTableRef() {
// Filtrer la liste des villes par pays
function filtreVilleParPays() {
const $selectVille = $('#codeVille');
const codePays = $('#codePays').val();
if (!codePays) return;
$.ajax({
url: $("#racineWeb").val() + "Ajaxfiltrevilleparpays/",
type: 'post',
data: { codePays: $('#codePays').val() },
data: { codePays: codePays },
success: function(htmlOptions) {
// On vide et on remplace les options (on ne touche pas au select lui-même)
$selectVille.empty().append(htmlOptions);
// On appelle notre fonction de sécurité
// On remplace le contenu
$selectVille.html(htmlOptions);
// On force la désélection pour que le placeholder s'affiche
$selectVille.val('');
// On appelle la fonction de sécurité
actualiserSelectPicker('#codeVille');
}
});
@ -91643,20 +91649,27 @@ function initDataTableReference(selector, exportTitle = 'Export_Donnees') {
function actualiserSelectPicker(selector) {
$(selector).each(function() {
const $el = $(this);
const lang = $("#codeLangue").val();
const txtDefault = (lang === 'en_US') ? "-- Select --" : "-- Sélectionner --";
// On nettoie les attributs qui pourraient forcer un placeholder fantôme
// 1. On supprime physiquement les attributs qui causent le doublage dans le bouton
$el.removeAttr('title').prop('title', '');
$el.attr('data-none-selected-text', txtDefault);
// 2. On vérifie si l'instance existe
if (!$el.data('selectpicker')) {
$el.selectpicker({
liveSearch: true,
style: 'btn-white border-2 border-start-0 fw-bold',
width: '100%',
size: 8,
// On ne définit PAS noneSelectedText ici car il est dans le HTML (PHP)
liveSearchPlaceholder: ($("#codeLangue").val() === "en_US") ? "Search..." : "Rechercher..."
noneSelectedText: txtDefault, // Source unique du texte
noneResultsText: (lang === 'en_US') ? "No results" : "Aucun résultat",
liveSearchPlaceholder: (lang === 'en_US') ? "Search..." : "Rechercher..."
});
} else {
// 3. Si elle existe, on met à jour le texte proprement avant le refresh
$el.data('selectpicker').options.noneSelectedText = txtDefault;
$el.selectpicker('refresh');
}
});