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 :
Le coté php :
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>'); } }); });
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.
Partager