cdf
This commit is contained in:
parent
2ee539170a
commit
f4cf1be505
|
|
@ -47681,28 +47681,52 @@ function formAjoutTableRef() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filtrer la liste des villes par pays
|
// Filtrer la liste des villes par pays
|
||||||
function filtreVilleParPays(){
|
function filtreVilleParPays() {
|
||||||
var codePays = $('#codePays').val();
|
const codePays = $('#codePays').val();
|
||||||
|
const racineWeb = $("#racineWeb").val();
|
||||||
|
const $divVille = $('#div_ville');
|
||||||
|
|
||||||
donnees ='codePays='+codePays;
|
// 1. Si aucun pays n'est sélectionné, on peut vider ou griser la ville
|
||||||
$.ajax({
|
if (!codePays || codePays === "") {
|
||||||
url: "Ajaxfiltrevilleparpays/",
|
$divVille.find('select').html('<option value=""><?= _("Choisir d\'abord un pays") ?></option>').selectpicker('refresh');
|
||||||
type: 'post',
|
return;
|
||||||
data: donnees,
|
}
|
||||||
error: function(errorData){
|
|
||||||
//alert("Erreur : "+errorData);
|
|
||||||
|
|
||||||
},
|
// 2. Feedback visuel de chargement sur le conteneur
|
||||||
success: function(data) {
|
$divVille.css('opacity', '0.5');
|
||||||
//alert("Success : "+data);
|
|
||||||
$('#div_ville').empty();
|
// 3. Appel AJAX
|
||||||
$('#div_ville').html(data);
|
$.ajax({
|
||||||
//filtreLocaliteParVille();
|
url: racineWeb + "Ajaxfiltrevilleparpays/",
|
||||||
},
|
type: 'post',
|
||||||
complete: function(){
|
data: { codePays: codePays }, // Passage en objet JSON (plus propre)
|
||||||
}
|
success: function(data) {
|
||||||
});
|
// 4. On vide et on injecte le nouveau <select> ou les nouvelles <option>
|
||||||
|
$divVille.html(data);
|
||||||
|
|
||||||
|
// 5. CRUCIAL : Ré-initialisation du SelectPicker
|
||||||
|
// Comme le contenu est dynamique, il faut dire au plugin de se reconstruire
|
||||||
|
setTimeout(function() {
|
||||||
|
const $selectVille = $divVille.find('select');
|
||||||
|
$selectVille.selectpicker({
|
||||||
|
liveSearch: true,
|
||||||
|
style: 'btn-white border-2 border-start-0 fw-bold',
|
||||||
|
size: 8
|
||||||
|
});
|
||||||
|
$selectVille.selectpicker('refresh');
|
||||||
|
}, 50);
|
||||||
|
|
||||||
|
if (typeof toastr !== 'undefined') {
|
||||||
|
toastr.info("Villes synchronisées");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(xhr) {
|
||||||
|
console.error("Erreur filtrage ville :", xhr.statusText);
|
||||||
|
},
|
||||||
|
complete: function() {
|
||||||
|
$divVille.css('opacity', '1');
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filtrer la liste des localités par pays et par ville
|
// Filtrer la liste des localités par pays et par ville
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
<select name="codeVille" id="codeVille" class="form-select" required AUTOCOMPLETE="OFF" onchange="JAVASCRIPT:filtreLocaliteParVille();">
|
<select name="codeVille" id="codeVille"
|
||||||
|
class="form-select border-2 border-start-0 ps-0 selectpicker show-tick"
|
||||||
|
data-live-search="true"
|
||||||
|
required onchange="JAVASCRIPT:filtreLocaliteParVille();">
|
||||||
<?= liste_options($ville,'',false) ?>
|
<?= liste_options($ville,'',false) ?>
|
||||||
</select>
|
</select>
|
||||||
|
|
@ -40,7 +40,6 @@
|
||||||
class="form-select border-2 border-start-0 ps-0 selectpicker show-tick"
|
class="form-select border-2 border-start-0 ps-0 selectpicker show-tick"
|
||||||
data-live-search="true"
|
data-live-search="true"
|
||||||
required>
|
required>
|
||||||
<option value=""><?= _("Choisir une ville") ?></option>
|
|
||||||
<?= liste_options($ville,'',false) ?>
|
<?= liste_options($ville,'',false) ?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user