Bonjour, j'ai le problème suivant:
J'ai quatre tables:
medecin: num_medecin, nom_medecin, ville_medecin
demande: num_medecin, num_livreur, date_demande
livreur: num_livreur, nom_livreur, ville_livreur, num_grossiste
grossiste: num_grossiste, nom_grossiste
Je souhaiterai que lorsqu'on choisit un médecin, on obtient les livreurs ayant la même ville que le médecin sélectionné (ville_medecin=ville_livreur, puis le nom des grossistes liée au livreur sélectionné.
(Liste 2 dépend de liste 1 et liste 3 dépend de liste 2).
Voici mes codes:
demande2.php
ajaxLivreur2.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92 <html> <script type='text/javascript'> function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function go_livre() { var xhr2 = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr2.onreadystatechange = function() { // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr2.readyState == 4 && xhr2.status == 200) { leselect = xhr2.responseText; // leselect = 3; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('grossiste').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr2.open("POST","ajaxGrossiste2.php",true); // ne pas oublier ça pour le post xhr2.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id du medecin sel2=document.getElementById('livreur'); idlivreur = sel2.options[sel2.selectedIndex].value; xhr2.send("idLivre="+idlivreur); // xhr2.send("idAuteur"=+idauteur); } </script> </head> <body> <form> <label>Test livrés par/où :</label> <div id='livreur' style='display:inline'> <select name='livreur' id='livreur' onchange='go_livre()'> <option value='-1'>Choisir un médecin d'abord</option> <? mysql_connect("localhost","root","root"); mysql_select_db("stage"); $res = mysql_query("SELECT * FROM livreur ORDER BY nom_livreur"); while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["num_livreur"]."'>".$row["nom_livreur"]. "(".$row["num_livreur"].")</option>"; } ?> </select> </div><br> <label>Grossiste :</label> <div id='grossiste' style='display:inline'> <select name='grossiste'> <option value='-1'>Choisir un médecin d'abord</option> </select> </form> </html>
ajaxGrossiste2.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 <?php echo "<select name='livreur'>"; $idmed=$_POST["idAuteur"]; if(isset($idmed)){ mysql_connect("localhost","root","root"); mysql_select_db("stage"); $ville = mysql_query("SELECT ville_med FROM medecin WHERE num_med=".$idmed." ORDER BY nom_med"); $ville = mysql_fetch_object($ville); $ville = $ville->ville_med; $res = mysql_query('SELECT * FROM livreur WHERE ville_livreur="'.$ville.'" ORDER BY nom_livreur'); while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["num_livreur"]."'>".$row["nom_livreur"]."</option>"; } } echo "</select>"; ?>
J'ai réussi à obtenir les livreurs en fonction de la ville du médecin mais je n'arrive pas à avoir le nom du grossiste en fonction du livreur.
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 <?php echo "<select name='grossiste'>"; $idlivre=$_POST["idLivreur"]; if(isset($idlivre)){ mysql_connect("localhost","root","root"); mysql_select_db("stage"); $ville = mysql_query("SELECT num_grossiste FROM livreur WHERE num_livreur=".$idlivre." ORDER BY nom_livreur"); $ville = mysql_fetch_object($ville); $ville = $ville->num_grossiste; $res = mysql_query('SELECT * FROM grossiste WHERE num_grossiste="'.$ville.'" ORDER BY nom_grossiste'); while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["num_grossiste"]."'>".$row["nom_grossiste"]."</option>"; } } ?>
Merci de votre aide!
Partager