Bonjour, je ne pense pas etre le dernier a demande des informations sur les listes liees malgre le fait que j'ai lu les differents tutos present sur le net et le tuto de siddh bien sur.
Ce que j'aimerais qu'on m'explique c'est comment inclure un 3e champs car apres manipulation dans le code de siddh je n'arrive a recuperer la valeur que d'un des premiers champ et non des 2 premiers.
Pour tester mes manipulations je me suis donc inspire du code de siddh, comme je l'ai dit precedemment, et j'essaie a partir de mes 2 premiers champs d'obtenirs une liste de valeurs calcules a partir des 2 premiers champs :
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
103
104 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" ></script> <title>TEST + AJAX + PHP</title> </head> <body> <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("Le navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Methode qui sera appele sur le click du bouton */ function go(){ var xhr = getXhr(); // On defini ce qu'on va faire quand on aura la reponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout recu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('nb').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","suitenb.php",true); // ne pas oublier ca pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id de l'auteur sela = document.getElementById('numero1'); selb = document.getElementById('numero2'); idnumero1 = sela.options[sela.selectedIndex].value; idnumero2 = selb.options[selb.selectedIndex].value; xhr.send("idNumero1="+idnumero1 && "idNumero2="+idnumero2); //xhr.send("idNumero2="+idnumero2); } --> </script> <form> <fieldset style="width: 500px"> <legend>Liste lies</legend> <label>Numero1</label> <select name='numero1' id='numero1' onchange='go()'> <!--<select name='numero1' id='numero1' >--> <option value='-1'>1er Numero</option> <? for ($i=1; $i<=10;$i++) { echo '<option value="'. $i .'">'. $i .'</option>'; echo "<br />"; } ?> </select> <label>Numero2</label> <select name='numero2' id='numero2' onchange='go()'> <option value='-1'>2e Numero</option> <? for ($i=1; $i<=10;$i++) { echo '<option value="'. $i .'">'. $i .'</option>'; echo "<br />"; } ?> </select> <label>Number</label> <div id='nb' style='display:inline'> <select name='nb'> <option value='-1'>Choisir un nb</option> </select> </div> </fieldset> </form> </body> </html>
Dans mon code j'ai commente la partie concernant car apparemment la valeur du champ affecte bien la derniere liste mais ne permet pas de recuperer de valeur.
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 <?php echo "<select name='nb'>"; if(isset($_POST["idNumero2"]) /*&& isset($_POST["idNumero2"])*/) { $limit= ($_POST["idNumero2"] /*+ $_POST["idNumero2"]*/)*2; $nb= $_POST["idNumero2"] /*+ $_POST["idNumero2"]*/; $n1 = $_POST["idNumero1"]; $n2 = $_POST["idNumero2"]; for ($nb; $nb<=$limit; $nb++) { echo '<option value="'. $nb .'">'. $nb .'</option>'; echo '<br />'; } } echo "</select>"; ?>
Mon code n'est la qu'a titre indicatif (car au final je voudrais utiliser mes 2 premieres listes liees a une troisieme pour verifier la validite de date dans un formulaire sachant que la 1ere liste contiendrait l'annee, la 2e le mois et la 3e le jour) ce que je cherche avant tout ce sont des explications sur la facon d'utiliser XMLHttpRequest avec 3 listes liees.
Merci d'avance de votre aide
Partager