Ben oui, mais là tu cherche à récupérer les 2 select dans la même requête : par rapport à ce que tu as déjà (pour minimiser les adaptations) il faudrait faire un appel Ajax par select ...
A+
Ben oui, mais là tu cherche à récupérer les 2 select dans la même requête : par rapport à ce que tu as déjà (pour minimiser les adaptations) il faudrait faire un appel Ajax par select ...
A+
la c'est à dire qu'il faut que je duplique toutes mes lignes de la fonction go()?
ca commence a devenir compliquer!
je m'enmele les pinceaux mdr
alors je montre ce que j'ai fais
index.php
ajax2.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 function go2(){ var xhr = getXhr(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; document.getElementById('Qte').innerHTML = leselect; } } xhr.open("POST","./ajax2.php",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); sel = document.getElementById('Id_ref'); id_ref = sel.options[sel.selectedIndex].value; xhr.send("Id_ref="+id_ref); } </script> </head> <body> <form> <fieldset style="width: 800px"> <legend>commande</legend> <label>reference</label> <select name='reference' id='Id_ref' onchange='go();'> <option value='-1'>reference</option> <?php //requete1 include ('connexion.php'); $res = mysql_query("SELECT * FROM reference"); while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["id"]."'>".$row["ref_pdt"]."</option>"; } ?> </select> <label>designation</label> <div id='designation' style='display:inline'> <select name='designation'> <option value='-1'>designation</option> </select> </div> <label>Qte</label> <div id='Qte' style='display:inline'> <select name='Qte'> <option value='-1'>Qte</option> </select> </div> </form>
et la en faite sur la 3 eme liste deroulante il ne se passe rien!
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 <?php //requete1 if(isset($_POST["Id_ref"])){ if ($db=mysql_connect('sql.arcotec.fr','arcotecfr','Flgv+532') ) { if (mysql_select_db('arcotecfr',$db) ) { $requete = "SELECT * FROM designation WHERE Id_ref=".$_POST["Id_ref"].""; if ($res = mysql_query($requete) ) { echo "<select name='designation'>"; while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["Id"]."'>".$row["des_pdt"]."</option>"; } echo "</select>"; } else { echo "Erreur de requête"; } } else { echo "Erreur sélection de base de données"; } } else { echo "Erreur de connexion mysql"; } } else { echo "Id_ref1 non défini"; } ?>
Tu appelles toujours go() au lieu de go2() sur le onchange du select ...
A+
c'est dans ajax2.php qu'il faut que je le mette ou dans index.php?
car si je met go2() là à la place de go():
<legend>commande</legend>
<label>reference</label>
<select name='reference' id='Id_ref' onchange='go();'>
c'est pas bon puisse qu'il va m'executer seulement go2() et plus go()
Pour mettre en place ton 2° traitement, fais comme si le 1° n'existait pas !
Veille seulement à ne pas utiliser les mêmes noms d'objets, de fonction etc ..
Ca simplifiera : ça sera quasiment du copié/collé
Une fois que ça fonctionnera, on verra si on peut optimiser sans trop compliquer
A+
oui ca j'ai compris,
si tu veux je te donne tous le code en entier!
mais ce que j'ai pas compris c'es dans quel select faut-il que je mette le go2() pour qu'il m'affiche et ma designation et ma qte.
index.php
ajax1.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 function go(){ var xhr = getXhr(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; document.getElementById('designation').innerHTML = leselect; } } xhr.open("POST","./ajax1.php",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); sel = document.getElementById('Id_ref'); id_ref = sel.options[sel.selectedIndex].value; xhr.send("Id_ref="+id_ref); } function go2(){ var xhr = getXhr(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; document.getElementById('Qte').innerHTML = leselect; } } xhr.open("POST","./ajax2.php",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); sel = document.getElementById('Id_ref'); id_ref = sel.options[sel.selectedIndex].value; xhr.send("Id_ref="+id_ref); } </script> </head> <body> <form> <fieldset style="width: 800px"> <legend>commande</legend> <label>reference</label> <select name='reference' id='Id_ref' onchange='go();'> <option value='-1'>reference</option> <?php //requete1 include ('connexion.php'); $res = mysql_query("SELECT * FROM reference"); while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["id"]."'>".$row["ref_pdt"]."</option>"; } ?> </select> <label>designation</label> <div id='designation' style='display:inline'> <select name='designation'> <option value='-1'>designation</option> </select> </div> <label>Qte</label> <div id='Qte' style='display:inline'> <select name='Qte'> <option value='-1'>Qte</option> </select> </div> </form> </body> </html>
ajax2.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 <?php //requete1 if(isset($_POST["Id_ref"])){ if ($db=mysql_connect('sql.arcotec.fr','arcotecfr','Flgv+532') ) { if (mysql_select_db('arcotecfr',$db) ) { $requete = "SELECT * FROM designation WHERE Id_ref=".$_POST["Id_ref"].""; if ($res = mysql_query($requete) ) { echo "<select name='designation'>"; while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["Id"]."'>".$row["des_pdt"]."</option>"; } echo "</select>"; } else { echo "Erreur de requête"; } } else { echo "Erreur sélection de base de données"; } } else { echo "Erreur de connexion mysql"; } } else { echo "Id_ref1 non défini"; } ?>
merci
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 <?php //requete1 if(isset($_POST["Id_ref"])){ if ($db=mysql_connect('sql.arcotec.fr','arcotecfr','Flgv+532') ) { if (mysql_select_db('arcotecfr',$db) ) { $requete = "SELECT * FROM designation WHERE Id_ref=".$_POST["Id_ref"].""; if ($res = mysql_query($requete) ) { echo "<select name='Qte' id='Qte' onchange='go2();'>"; while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["Id"]."'>".$row["Qte"]."</option>"; } echo "</select>"; } else { echo "Erreur de requête"; } } else { echo "Erreur sélection de base de données"; } } else { echo "Erreur de connexion mysql"; } } else { echo "Id_ref1 non défini"; } ?>
Pas besoin : plus le temps
Il n'afficheras que l'un des 2 !
Rappelles-toi : je t'ai dit de traiter les 2 indépendamment !
Je ne vois d'ailleurs pas comment il pourrait faire les 2 : l'alim de la 3° liste dépend d'un choix dans la 2° .... dont l'alimentation dépend d'un choix dans la 1°
Suit la logique
A+
non en faite la deuxième liste depend de la première liste et la troisième liste depend aussi de la première liste!
merci pour ton aide
j'ai reussi a faire un petit truc!
je te donne les codes pour ke tu jete un coup d'oeil
index.php
ajax1.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 //requete1 function go(){ var xhr = getXhr(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; document.getElementById('designation').innerHTML = leselect; document.getElementById('Qte').innerHTML = leselect; } } xhr.open("POST","./ajax1.php",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); sel = document.getElementById('Id_ref'); id_ref = sel.options[sel.selectedIndex].value; xhr.send("Id_ref="+id_ref); } </script> </head> <body> <form> <fieldset style="width: 800px"> <legend>commande</legend> <label>reference</label> <select name='reference' id='Id_ref' onchange='go();'> <option value='-1'>reference</option> <?php //requete1 include ('connexion.php'); $res = mysql_query("SELECT * FROM reference"); while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["id"]."'>".$row["ref_pdt"]."</option>"; } ?> </select> <label>designation</label> <div id='designation' style='display:inline'> <select name='designation'> <option value='-1'>designation</option> </select> </div> <div id='Qte' style='display:inline'> </div>
et voila ce que ca donne en page d'accueil puis après selection
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 <?php //requete1 if(isset($_POST["Id_ref"])){ if ($db=mysql_connect('sql.arcotec.fr','arcotecfr','Flgv+532') ) { if (mysql_select_db('arcotecfr',$db) ) { $requete = "SELECT * FROM designation WHERE Id_ref=".$_POST["Id_ref"].""; if ($res = mysql_query($requete) ) { echo "<select name='designation'>"; while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["Id"]."'>".$row["des_pdt"]."</option>"; } echo "</select>"; } if ($res = mysql_query($requete) ) { echo '<label>qte</label>'; echo "<select name='Qte'>"; while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["Id"]."'>".$row["Qte"]."</option>"; } echo "</select>"; } else { echo "Erreur de requête"; } } else { echo "Erreur sélection de base de données"; } } else { echo "Erreur de connexion mysql"; } } else { echo "Id_ref1 non défini"; } ?>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager