Affichage du résultat des select ajax
Bonjour,
Je souhaite afficher dans mon div le résultat de mes mes select liés. Je remercie encore almoha pour son aide à propos de ceux là.
Voici le code actuel de l'ajax :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
$(document).ready(function() {
var $Carosserie = $('#Carosserie');
var $Marque = $('#Marque');
var $Modele = $('#Modele');
// chargement de la liste de localité un
$.ajax({
url: 'liste.php',
data: 'go', // on envoie $_GET['go']
dataType: 'json', // on veut un retour JSON
success: function(json) {
$.each(json, function(index, value) {
// pour chaque noeud JSON
// on ajoute l option dans la liste
$('#Carosserie').append('<option value="'+ index +'">'+ value +'</option>');
});
}
});
// à la sélection de la localité un dans la liste
$Carosserie.on('change', function() {
var val = $(this).val(); // on récupère la valeur de la localité un
if(val != '') {
$Marque.empty(); // on vide la liste de localité deux
$Marque.append('<option value="">Marque</option>');
$.ajax({
url: 'liste.php',
data: 'Carosserie='+ val, // on envoie $_GET['localite_un']
dataType: 'json',
success: function(json) {
$.each(json, function(index, value) {
$Marque.append('<option value="'+ index +'">'+ value +'</option>');
});
}
});
}
else {
$Marque.empty();
$Marque.append('<option value="">Marque</option>');
$Modele.empty(); // on vide la liste de localité deux
$Modele.append('<option value="">Modele</option>');
}
});
// à la sélection de la localité deux dans la liste
$Marque.on('change', function() {
var marque = $(this).val(); // on récupère la valeur de la marque
var carosserie = $('#Carosserie option:selected').val()// on récupère la valeur de la carrosserie => id Carosserie avec une majuscule
if(marque != '') {
$Modele.empty(); // on vide la liste de localité trois
$Modele.append('<option value="">Modele</option>');
$.ajax({
url: 'liste.php',
data: { Marque: marque, Carosserie: carosserie },// // on envoie $_GET['localite_deux']
dataType: 'json',
success: function(json) {
$.each(json, function(index, value) {
$Modele.append('<option value="'+ index +'">'+ value +'</option>');
});
}
});
}
else {
$Modele.empty();
$Modele.append('<option value="">Modele</option>');
}
});
}); |
Le coté php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
<?php
// Vérification des paramètres d'accès au fichier liste.php
if(isset($_GET['go']) || isset($_GET['Carosserie']) || isset($_GET['Marque'])) {
// connexion à la base de données
try {
$bdd = new PDO('mysql:host=localhost;dbname=Autotransaction', 'root', '');
} catch(Exception $e) {
exit('Impossible de se connecter à la base de données.');
}
$json = array();
if(isset($_GET['go'])) {
// requête qui récupère les localités un
$requete = "SELECT DISTINCT(Carosserie) FROM autotran ";
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
// Création de la liste
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
// je remplis un tableau et mettant l'id en index
$json[$donnees["Carosserie"]][] = utf8_encode($donnees["Carosserie"]);
}
}
elseif(isset($_GET['Carosserie'])&& !isset($_GET['Marque'])) {//modif ici
// requête qui récupère les localités un
$requete = "SELECT DISTINCT(Marque) FROM autotran WHERE Carosserie = '".$_GET['Carosserie']."' ";
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
// Création de la liste
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
// je remplis un tableau et mettant l'id en index
$json[$donnees["Marque"]][] = utf8_encode($donnees["Marque"]);
}
}
elseif(isset($_GET['Marque']) && isset($_GET['Carosserie'])) {//et ici
// requête qui récupère les localités un
$requete = "SELECT DISTINCT(Modele) FROM autotran WHERE Marque = '".$_GET['Marque']."' AND Carosserie = '".$_GET['Carosserie']."'";
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
// Création de la liste
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
// je remplis un tableau et mettant l'id en index
$json[$donnees["Modele"]][] = utf8_encode($donnees["Modele"]);
}
}
// envoi du résultat au success
echo json_encode($json);
}
?> |
Et enfin le html :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<select id="Carosserie" onchange="submit();???????????(this.value)">
<option value="">Catégories</select>
</select>
<select id="Marque" >
<option value="">Marque</select>
</select>
<select id="Modele">
<option value="">Modele</select>
</select>
<div id="resultat"></div> |
Ne comprennant pas tout à ajax, je solicite votre aide et vous remercie d'avance.