df
This commit is contained in:
parent
3e173357bd
commit
c9c3d7f05c
|
|
@ -47669,8 +47669,8 @@ function formAjoutTableRef() {
|
||||||
// Injection du HTML
|
// Injection du HTML
|
||||||
$('#div_maj_table').html(data);
|
$('#div_maj_table').html(data);
|
||||||
|
|
||||||
// SOLUTION RADICALE : On force la réinitialisation
|
// Initialise tous les selects du formulaire avec recherche et sans doublons
|
||||||
forceInitSelectPicker('#div_maj_table');
|
initSelectPickerPro('#div_maj_table');
|
||||||
|
|
||||||
// Autres initialisations
|
// Autres initialisations
|
||||||
$(".datepicker").datepicker({ autoclose: true, format: 'dd/mm/yyyy' });
|
$(".datepicker").datepicker({ autoclose: true, format: 'dd/mm/yyyy' });
|
||||||
|
|
@ -47687,23 +47687,25 @@ function formAjoutTableRef() {
|
||||||
// Filtrer la liste des villes par pays
|
// Filtrer la liste des villes par pays
|
||||||
function filtreVilleParPays() {
|
function filtreVilleParPays() {
|
||||||
const codePays = $('#codePays').val();
|
const codePays = $('#codePays').val();
|
||||||
|
const racineWeb = $("#racineWeb").val();
|
||||||
const $divVille = $('#div_ville');
|
const $divVille = $('#div_ville');
|
||||||
|
|
||||||
|
if (!codePays) return;
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: $("#racineWeb").val() + "Ajaxfiltrevilleparpays/",
|
url: racineWeb + "Ajaxfiltrevilleparpays/",
|
||||||
type: 'post',
|
type: 'post',
|
||||||
data: { codePays: codePays },
|
data: { codePays: codePays },
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
// On injecte le nouveau contenu (qui contient le select)
|
// Injection du HTML brut venant du serveur
|
||||||
$divVille.html(data);
|
$divVille.html(data);
|
||||||
|
|
||||||
// On nettoie et on réinitialise spécifiquement cette zone
|
// Appel de la fonction pro : recherche activée, doublons supprimés
|
||||||
forceInitSelectPicker('#div_ville');
|
initSelectPickerPro('#div_ville');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Filtrer la liste des localités par pays et par ville
|
// Filtrer la liste des localités par pays et par ville
|
||||||
function filtreLocaliteParVille(){
|
function filtreLocaliteParVille(){
|
||||||
var codePays = $('#codePays').val(),
|
var codePays = $('#codePays').val(),
|
||||||
|
|
@ -91692,4 +91694,33 @@ function forceInitSelectPicker(containerSelector) {
|
||||||
// 3. Forcer le rafraîchissement du rendu
|
// 3. Forcer le rafraîchissement du rendu
|
||||||
$(this).selectpicker('refresh');
|
$(this).selectpicker('refresh');
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialise proprement un SelectPicker avec recherche sans doublons
|
||||||
|
* @param {string} selector - Le conteneur ou le select (ex: '#div_ville' ou '.selectpicker')
|
||||||
|
*/
|
||||||
|
function initSelectPickerPro(selector) {
|
||||||
|
const $element = $(selector);
|
||||||
|
const codeLangue = $("#codeLangue").val();
|
||||||
|
|
||||||
|
// 1. On détruit l'instance existante et on supprime le HTML généré par le plugin
|
||||||
|
// C'est cette étape qui empêche les doublons de barre de recherche
|
||||||
|
$element.find('.selectpicker').selectpicker('destroy');
|
||||||
|
$element.find('.bootstrap-select').remove();
|
||||||
|
|
||||||
|
// 2. On sélectionne les éléments <select> et on les ré-initialise
|
||||||
|
$element.find('select').each(function() {
|
||||||
|
$(this).selectpicker({
|
||||||
|
liveSearch: true, // RÉACTIVE LA RECHERCHE
|
||||||
|
style: 'btn-white border-2 border-start-0 fw-bold',
|
||||||
|
width: '100%',
|
||||||
|
size: 8,
|
||||||
|
noneSelectedText: codeLangue === 'en_US' ? '-- Select --' : '-- Sélectionner --',
|
||||||
|
liveSearchPlaceholder: codeLangue === 'en_US' ? 'Search...' : 'Rechercher...'
|
||||||
|
});
|
||||||
|
|
||||||
|
// 3. Forcer le rafraîchissement du rendu visuel
|
||||||
|
$(this).selectpicker('refresh');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user