Bonjour le code explique tout,
pour le fichier origine tout marche bien, la première liste deroulante marche parfaitement.
Le alert("option1="+option1+"&niveau="+niveau) renvoi bien ce qu'il me faut.
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
93
94
95
96
97
98
99
100
101
102 <html> <head> <script type='text/javascript'> var sid = "'.session_id().'"; function getXhr() { var xhr = null; if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); else if(window.ActiveXObject) { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { 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(n) { var xhr = getXhr(); xhr.open("POST","Vues/reqAjaxClasse.php",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); sel = document.getElementById('option1'); option1= sel.options[sel.selectedIndex].value; xhr.send("option1="+option1+"&niveau="+n); alert("option1="+option1+"&niveau="+n); xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { leselect = xhr.responseText; document.getElementById('option2').innerHTML = leselect; } } } </script> </head> <body> <form action="index.php?vue=creation_classe_option_conf" method="post"> <?php if($_SESSION['niveau_classe'] == 6) { $niveau = 6; $listeOption=$_SESSION['listeOptions6']; } elseif($_SESSION['niveau_classe'] == 5) { $niveau = 5; $listeOption=$_SESSION['listeOptions5']; } elseif($_SESSION['niveau_classe'] == 4) { $niveau = 4; $listeOption=$_SESSION['listeOptions4']; } else { $niveau = 3; $listeOption=$_SESSION['listeOptions3']; } ?> <fieldset class="interieur_cadre_inscription"> <label>Option1 : </label> <select name='option1' id='option1' onchange='go(<?php echo $niveau ?>)'> <option value='-1'>AUCUNE</option> <?php foreach ($listeOption as $data) { echo '<option>'.$data[0].' </option>'; } ?> </select><br> <label>Option2 : </label> <div name='option2' id='option2' style='display:inline'> <select name='option2'> <option value='-1'>AUCUNE</option> </select> </div> <center><input type="submit"></center> </fieldset> </form> </body> </html>
Le fichier de requete est le suivant :
La deuxième liste déroulante ne se met jamais à jour.
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 $chaine = $_POST['option1']; $deconcatenation = explode("&", $chaine); $option1 = $deconcatenation[0]; $niveau = $deconcatenation[1] $dec_option = explode("=", $option1); $option1=$dec_option[1]; $dec_niveau=explode("=", $niveau); $niveau=$dec_niveau[1]; if($niveau == 6) $inc = "o___"; elseif($niveau == 5) $inc = "_o__"; elseif($niveau==4) $inc = "__o_"; else $inc = "___o"; $var="<select name='option2'><option value='-1'>TOTO</option>"; if(isset($option1)) { mysql_connect("localhost","root"," "); mysql_select_db("AutoClasse"); $res = mysql_query("SELECT `nom` FROM `option` WHERE `incompatibilite1`<>'".$option1."' AND `incompatibilite2`<>'".$option1."'AND `niveau` like'".$inc."'"); $i = 0; while($row = mysql_fetch_assoc($res)) { $var.="<option value='".$i."'>".$row['nom']."</option>"; $i++; } } $var.="</select>"; echo $var; ?>
Merci d'avance.
PS : je crois que je vais finir par trouver une autre utilité au cable ethernet...![]()
Partager