Bonjour,
J'ai un formulaire avec deux select
Le premier pour les zones et le second pour les sous zones
En fonction du choix de la zone j'ai les sous zones correspondantes
Le programme fonctionne (console.log me donne bien les valeurs) mais je n'arrive pas à alimenter les sous zones
Mon code
Merci d'avance pour votre aide
Modifié par dudu22 (18 Dec 2023 - 14:13)
J'ai un formulaire avec deux select
Le premier pour les zones et le second pour les sous zones
En fonction du choix de la zone j'ai les sous zones correspondantes
Le programme fonctionne (console.log me donne bien les valeurs) mais je n'arrive pas à alimenter les sous zones
Mon code
<div class="container container-center margin">
<h3 class="text-center">Bienvenue <b><?=$user_items->pseudo?> </b> sur votre espace administrateur</h3>
<div class="card card-default card-body text-center">
<form class="form-inlin justify-content-center" id="form_search" name="form_search" action="/fr/BO/Plantzones/show" method="post" >
<fieldset >
<legend >Faites une Recherche</legend>
<div class="form-group ">
<div class="col-xs-2">
<input class="form-control form-control-sm" type="text" name="request" id="request" >
</div>
</div>
<button type="submit" class="btn btn-primary mb-2">Rechercher</button>
</fieldset>
</form>
<form class="form-inlin justify-content-center" method="post" action="/fr/BO/Plantzones/show">
<fieldset>
<legend>Choix de la zone</legend>
<select class="form-control form-control-sm custom-select" name="plantzone_id" id="plantzone_id" onchange="updateSubzones()"><option value="">Sélectionnez une zone</option>
<?php foreach($plantzones as $plantzone): ?>
<option value="<?=$plantzone->id;?>"><?=$plantzone->zonename;?>/<?=$plantzone->description;?></option>
<?php endforeach; ?>
</select>
</fieldset>
<fieldset>
<legend>Choix de la sous zone</legend>
<div class="form-group">
<select class="form-control form-control-sm custom-select" name="plantsubzone_id" id="plantsubzone_id" placeholer="Sélectionnez d'abord une zone"><option value="">Sélectionnez une sous zone</option>
</select>
</div>
<button type="submit" class="btn btn-primary">Selectionner</button>
</fieldset>
</form>
</div>
</div>
<script>
function updateSubzones() {
var zoneSelect = document.getElementById('plantzone_id');
var subzoneSelect = document.getElementById('plantsubzone_id');
// Récupérer la valeur sélectionnée dans le premier select
var selectedZoneId = zoneSelect.value; //alert(selectedZoneId);
// Vider le deuxième select
//subzoneSelect.innerHTML = '<option value="">Sélectionnez d\'abord une zone</option>';
subzoneSelect.innerHTML = '';
// Si une zone est sélectionnée, remplir le deuxième select avec les sous-zones correspondantes
if (selectedZoneId) {
// Effectuer une requête AJAX pour récupérer les sous-zones
$.ajax({
url: '/fr/BO/Plantzones/BySubZone',
type: 'POST',
dataType: 'json',
data: {
zoneId: selectedZoneId
},
success: function(subzones) {
$.each(subzones, function(index, subzone) {
console.log(subzone.subzonename + " " +subzone.description );
subzoneSelect.append('<option value="' + subzone.subzonename + '">' + subzone.description + '</option>');
/*subzoneSelect.append($('<option>', {
value: subzone.id,
text: subzone.subzonename
}));*/
});
},
error: function() {
console.error("Erreur lors de la récupération des sous-zones.");
}
});
}
}//Fin Fonction
</script>
Merci d'avance pour votre aide
Modifié par dudu22 (18 Dec 2023 - 14:13)