diff --git a/Js/fonctions.js b/Js/fonctions.js index 8de9dadf..05103245 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -47669,8 +47669,8 @@ function formAjoutTableRef() { // Injection du HTML $('#div_maj_table').html(data); - // SOLUTION RADICALE : On force la réinitialisation - forceInitSelectPicker('#div_maj_table'); + // Initialise tous les selects du formulaire avec recherche et sans doublons + initSelectPickerPro('#div_maj_table'); // Autres initialisations $(".datepicker").datepicker({ autoclose: true, format: 'dd/mm/yyyy' }); @@ -47687,23 +47687,25 @@ 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").val() + "Ajaxfiltrevilleparpays/", + url: racineWeb + "Ajaxfiltrevilleparpays/", type: 'post', data: { codePays: codePays }, success: function(data) { - // On injecte le nouveau contenu (qui contient le select) + // Injection du HTML brut venant du serveur $divVille.html(data); - // On nettoie et on réinitialise spécifiquement cette zone - forceInitSelectPicker('#div_ville'); + // Appel de la fonction pro : recherche activée, doublons supprimés + initSelectPickerPro('#div_ville'); } }); } - // Filtrer la liste des localités par pays et par ville function filtreLocaliteParVille(){ var codePays = $('#codePays').val(), @@ -91692,4 +91694,33 @@ function forceInitSelectPicker(containerSelector) { // 3. Forcer le rafraîchissement du rendu $(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