Est-ce que tu peux reprendre mon code de test et l'exécuter au moins une fois.
J'ai oublié de te dire que le script de test devait être dans un fichier intitulé test.php
Version imprimable
Est-ce que tu peux reprendre mon code de test et l'exécuter au moins une fois.
J'ai oublié de te dire que le script de test devait être dans un fichier intitulé test.php
Oui, biensûr, mais je n'ai même plus les dates proposées en fonction du serial_number dans la liste ....
Montres moi comment tu as adapté mon script
Bah j'ai rajouté le code pour la connexion à la BDD.
Oui!
Tu ne veux toujours pas poster le code ? Tu ne risque rien tu sais :lol:
Honnêtement, je ne vois pas pourquoi mon code ne fonctionne pas, je bosse dessus depuis plusieurs jours et ça n'avance pas !
Toujours le problème pour extraire la date selectionnée dans la liste déroulante, tu n'aurais pas une idée ?
Je remet le code;
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <FORM method=post action="site2d.php"> <INPUT type="hidden" name="dut_serialnumber" value="<?php echo $dut_serialnumber; ?>"> Date: <select name='date_start' > <?php while($row = mysql_fetch_array($result)) { echo '<option>', $row['date_start'], '</option>'; } ?> </select> <INPUT type="submit" value="Envoyer2"> </FORM> <? $date_start = $_POST['date_start']; echo $date_start; ?>
RemplaceparCode:echo '<option>', $row['date_start'], '</option>';
Code:echo '<option value="', $row['date_start'], '">', $row['date_start'], '</option>';
Lorsque je clique sur ENVOYER2, la page se recharge mais je n'ai toujours pas la date d'affiché (je demande l'affichage uniquement pour voir que j'ai bien extrais la date selectionnée).
Merci.
Pour retrouver ce que tu as sélectionné, il faut gérer l'attribut selected="selected".
Après avoir extrait tes dates, il faut comparer chaque valeur avec la date sélectionnée et si cela correspond tu ajoutes l'attribut selected à <option></option>.
Regardes dans ma source $selectedDate Lignes 27 et 78
Tu peux m'orienter un peu plus en indiquant cela sur mon code car je suis vraiment perdu !
Merci;)
Vérifies bien que la clé est 'date_start' et non 'date_serial' comme précédemment, sinon remplaces.Code:
1
2
3
4 while($row = mysql_fetch_assoc($result)) { $isSelected = ($row['date_start'] === $_POST['date_start']) ? ' selected="selected"' : null; echo '<option value="', $row['date_start'], '"', $isSelected, '>', $row['date_start'], '</option>'; }
Toujours pareil, la page se recharge mais je ne récupère pas la date !
rajoutes en haut de ton scriptcomme ça tu verras ce que ton script reçoit comme données à chaque appelCode:print_r($_POST);
J'ai fais plusieurs essais, apparemment je récupère bien la date sélectionnée ! J'obtiens ça :
Code:Array ( [dut_serialnumber] => tx081 [date_start] => 2011-07-07 15:25:02 )
attends, dut_serialnumber n'est pas un entier ! c'est un texte ! C'est pourquoi mon script ne te renvoyait rien. Le post sur lequel je m'étais appuyé faisait mention deEt j'ai codé mon script pour vérifier que dut_serialnumber devait être un entier.Code:<INPUT type=int name="dut_serialnumber">
Réessaies avec mon script modifié en conséquence :
C'est pour ton bien :mouarf:Code:
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123 <?php // RAJOUTE LA CONNEXION A LA BASE DE DONNEES : mysql_connect() mysql_select_db() // securité : echappement des caractères spéciaux $hsc = function ($p) { return htmlspecialchars($p, ENT_QUOTES); }; $hasDut = (isset($_POST['dut_serialnumber']) && strlen($_POST['dut_serialnumber'])); $hasDate = (isset($_POST['date_start']) && date_create($_POST['date_start'])); $hideData_dates = true; $hideData_tests = true; $selectedDut = null; $selectedDate = null; // si hasDut et hasDate -> on renvoie le formulaire et la liste des tests effectués // si hasDut -> on renvoie le formulaire et la liste des date disponibles if ($hasDut) { $selectedDut = $_POST['dut_serialnumber']; $sql = "SELECT date_start FROM dut_test_data WHERE dut_serialnumber='". mysql_real_escape_string($selectedDut) . "'"; $dataDates = mysql_query($sql); $hideData_dates = ( ! $dataDates); // au cas oà la requête planterait on n'affiche pas la zone de liste } if (( ! $hideData_dates) && $hasDate) { $selectedDate = $_POST['date_start']; } if ($selectedDut && $selectedDate) { $sql = <<<SQL SELECT test_name, test_description, test_frequency, test_octopack_slot, test_octopack_channel, test_phase, test_value, test_limitlow, test_limithigh, test_result, test_unit FROM dut_test_data WHERE test_date = '$selectedDate' SQL; $dataTests = mysql_query($ql); $hideData_tests = ( ! $dataTests); // au cas oà la requête planterait on n'affiche pas la table } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="site1.css" /> <title>Demonstration N�2</title> </head> <style type="text/css"> h1 { text-align: center; font-weight: bold; border-width: 12px; border-color: grey; border-style: inset; padding: 5px; } h3 { text-decoration: underline; } table { border: 5px solid black; } </style> <body> <h1>Exploitation de la base de donnees TX_RACK</h1> <h3>Choisir le dut_serial_number afin d'afficher les dates des tests r�alis�s :</h3> <form method="post" action="site2.php"> <label for="dut_serialnumber">Entrez le dut_serialnumber : </label> <input id="dut_serialnumber" type="number" name="dut_serialnumber" required="required" value="<?php echo $selectedDut; ?>" /> <?php if ( ! $hideData_dates): ?> <label for="listeDates">Dates : </label> <select id="listeDates" name="date_start"> <?php while($row = mysql_fetch_assoc($dataDates)): $isSelected = ($row['date_start'] === $selectedDate) ? ' selected="selected"' : null; ?> <option value="<?php echo $hsc($row['date_start']); ?>"<?php echo $isSelected; ?>><?php echo $hsc($row['date_start']); ?></option> <?php endwhile; ?> </select> <?php endif; ?> <input type="submit" value="Envoyer" /> </form> <?php if ( ! $hideData_tests): ?> <table> <thead> <tr> <th>Name</th> <th>Description</th> <th>Frequency</th> <th>Slot</th> <th>Channel</th> <th>Phase</th> <th>Value</th> <th>Limit low</th> <th>Limit high</th> <th>Result</th> <th>Unit</th> </tr> </thead> <tbody> <?php while($row = mysql_fetch_assoc($dataTests)): ?> <tr> <td><?php echo $hsc($row['test_name']); ?></td> <td><?php echo $hsc($row['test_description']); ?></td> <td><?php echo $hsc($row['test_frequency']); ?></td> <td><?php echo $hsc($row['test_octopack_slot']); ?></td> <td><?php echo $hsc($row['test_octopack_channel']); ?></td> <td><?php echo $hsc($row['test_phase']); ?></td> <td><?php echo $hsc($row['test_value']); ?></td> <td><?php echo $hsc($row['test_limitlow']); ?></td> <td><?php echo $hsc($row['test_limithigh']); ?></td> <td><?php echo $hsc($row['test_result']); ?></td> <td><?php echo $hsc($row['test_unit']); ?></td> </tr> <?php endwhile; ?> </tbody> </table> <?php endif; ?> </body> </html>
J'ai la même chose (array et les valeurs des champs dut_serialnumber et date_start). Je ne comprends pas pourquoi on ne peut pas extraire la valeur de la date alors que celle ci est bien envoyé ?
Après avoir renseigné le champ dut_serialnumber et soumis le formulaire,
est ce que tu vois au moins le champs Date ?
Y a t il des données dedans ?
Je tape le champs dut_serialnumber puis j'appuie sur ENVOYER, ensuite j'ai les dates dans la liste déroulante (dates résultantes de la requête), j'en sélectionne une puis j'appuie sur ENVOYER.
1er envoie :
2ème envoie :Code:Array ( [dut_serialnumber] => tx081 [date_start]
Cela prouve que le champs date est bien renvoyé ? Mais je n'arrive toujours pas à le récupérer;Code:Array ( [dut_serialnumber] => tx081 [date_start] => 2011-07-07 13:31:00 )
Merci ...