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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 html : Sélectionner tout - Visualiser dans une fenêtre à part
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.