Bien vu !
Et attention, un onchange sur un input de type submit n'a aucun sens !
Version imprimable
effectivement sa me pose problème FMaz il faudrait pas commencer par la fin...
je ne voit pas ou tu met les {}.
et pour ce qui est du input de type submit comment faut-il faire ?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function verifheure(){ // Mise en place de la première heure var heure_Debut = document.getElementById('heure_debut').value; // Mise en place de la seconde heure var heure_Fin = document.getElementById('heure_fin').value; if (heure_Fin <= heure_Debut){ alert("erreur, l'heure de fin doit être supérieur à l'heure de début"); document.getElementById('envoi').disabled = true; } else{ document.getElementById('envoi').disabled = false; } }
on utilise souvent le onsubmit du formulaire ou le onclick du submit, mais dans l'exemple donné, c'est inutile puisque le submit n'est pas accessible si les données ne sont pas correctes.Citation:
et pour ce qui est du input de type submit comment faut-il faire ?
je te remercie bovino pour ta patience je suis long à comprendre c'est sympa de répondre... je comprend ce que tu veux dire mais dans mon formulaire lorsque je rentre par exemple heure de début : 12 et heure de fin : 10 et je clique sur envoyer sa m'envoie tout de même : évènement enregistré! et je ne voudrais pas.
voici mon code complet :
il y a peut être quelque chose à modifier pour que sa m'affiche que ce n'est pas possible ou pour toi c'est inutile ??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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172 <script> function verifheure(){ // Mise en place de la première heure var heure_Debut = document.getElementById('heure_debut').value; // Mise en place de la seconde heure var heure_Fin = document.getElementById('heure_fin').value; if (heure_Fin <= heure_Debut){ alert("erreur, l'heure de fin doit être supérieur à l'heure de début"); document.getElementById('envoi').disabled = true; } else{ document.getElementById('envoi').disabled = false; } } </script> <?php include ('traitements.php'); //L'instruction de langage include() inclut et exécute le fichier spécifié en argument, en l'occurence ici la page traitements.php css(); // Appel de la fonction css //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Procédure de récupération des données //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- $date_evenement = date("d/m/Y"); // date() est la fonction date qui permet de récupérer la date du jour : d est le numéro du jour dans le mois, m est le numéro du mois dans l'année, et y est l'année. if (isset($_POST['envoi'])) //si le formulaire a été posté alors on peut récupérer la valeur du champ { $date_evenement = implode('-',array_reverse (explode('/',$_POST['date_evenement']))); //array_reverse Inverse l'ordre des éléments d'un tableau //Si on saisie une date de format "dd/mm/yyyy" sur le formulaire, ce code transforme la date de format en 'yyyy-mm-dd' pour enregistrer dans la base mysql $heureDebut = ($_POST['heure_debut']); //Comme la méthode d'envoi est POST, la variable contient ce qu'a entré le visiteur dans le champ $heureFin = ($_POST['heure_fin']); $id_etat_evenement = $_POST['id_etat_evenement']; if(!empty($date_evenement) && !empty($heureDebut) && !empty($heureFin) && !empty($id_etat_evenement)) //empty Détermine si une variable est vide { $heure = $heureDebut; //on incrémente $heure à $heureDebut while ($heure < $heureFin) // tant que l'heure de départ n'a pas atteint l'heure de fin on fait des insert { //création de la requète d'insertion $req = "INSERT INTO jos_evenements VALUES ('', '$date_evenement', $heure, $id_etat_evenement)"; //mettre des 'guillemets' pour la date evenement mysql_query($req) or die(mysql_error()); //mysql_query Envoie une requête à un serveur MySQL //mysql_error Retourne le texte associé avec l'erreur générée lors de la dernière requête $heure = $heure + 1; // voir comment rajouter une heure à l'heure saisi car ce n'est pas forcement un int } mysql_close(); //Ferme la connexion MySQL echo '<ul><li>Evénement enregistré !</li></ul>'; } } //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Le formulaire pour ajouter un évènement //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- echo "<form method='post' action='#'> <table id='tabAjoutEvent'> <tr> Ce formulaire vous permet de saisir un nouvel évènement de la piste de karting. </tr> <tr> <br><br> </tr> <tr> <td>Date : <input type='date' size = '10' name='date_evenement' value='$date_evenement'/></td> </tr> <tr> <td> Heure de début : <select name='heure_debut' id='heure_debut' onchange='verifheure(this)'> <option value='0'>0</option> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> </select> </td> </tr> <tr> <td> Heure de fin : <select name='heure_fin' id='heure_fin' onchange='verifheure(this)'> <option value='0'>0</option> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> </select> </td> </tr> <tr> <td>Description de la piste : <select name='id_etat_evenement'>"; $sql = ('SELECT * FROM jos_etat'); //on sélectionne tout les champs de la table état $req = mysql_query($sql) or die(mysql_error()); //Envoie une requête à un serveur MySQL et Retourne le texte associé avec l'erreur générée lors de la dernière requête while($data = mysql_fetch_assoc($req)) // Tant qu'il y a des enregistrements $data on lance la requête //mysql_fetch_assoc Lit une ligne de résultat MySQL dans un tableau associatif { $optionT = $data['id_etat'].' | '.$data['description_etat']; // concaténation des deux éléments de la table état echo '<option value='.$optionT.'>' .$optionT. '</option>'; } mysql_close(); //Ferme la connexion MySQL echo "</select></td> </tr> <tr> <td><br></td> </tr> <tr> <td> <a href='javascript:void(0)'> <input name='reset' type='reset' value='Effacer' class='reset'/> </a> <a href='javascript:void(0)'> <input type='submit' name='envoi' id='envoi' value='Envoyer' class='submit'/> </a> </td> </tr> </table> </form>"; ?>
Ta validation devrait ne devrait pas se faire sur tes champs, mais dans le onsubmit du formulaire.
Ta fonction de validation devrait retourner true ou false.
et tu devrait mettre un return dans ton onsubmit, car si tu retourne false dans un évènement, l'évènement prend fin.
Code:
1
2
3 <form onsubmit="return verifheure();"> ...
merci FMaz pour ta réponse. Je met le onsubmit="return verifheure();" dans mon "<form method='post' action='#'> ??? et je l'enlève de mes select ?? si c'est le cas sa ne fonctionne pas... :?
C'est possible d'avoir le code que tu essaie, ainsi que l'erreur ?
... sinon, moi aussi j'en ai une dur pour toi; j'ai une erreur dans mon code PHP, je dois faire quoi pour la résoudre ? :aie:
le problème c'est que sa me retourne aucune erreur! sa me met enregistrement validé alors que j'ai rentré heure début : 7 heure fin : 2 par exemple... c'est ça que je ne comprend pas...
si tu pouvais me dire ou mettre le onsubmit="return verifheure();" dans le code suivant...
si je peux résoudre ton erreur pas de problème au passage! je te remercie de me répondre c'est sympa de ta part :ccool: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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172 <script> function verifheure(){ // Mise en place de la première heure var heure_Debut = document.getElementById('heure_debut').value; // Mise en place de la seconde heure var heure_Fin = document.getElementById('heure_fin').value; if (heure_Fin <= heure_Debut){ alert("erreur, l'heure de fin doit être supérieur à l'heure de début"); document.getElementById('envoi').disabled = true; } else{ document.getElementById('envoi').disabled = false; } } </script> <?php include ('traitements.php'); //L'instruction de langage include() inclut et exécute le fichier spécifié en argument, en l'occurence ici la page traitements.php css(); // Appel de la fonction css //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Procédure de récupération des données //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- $date_evenement = date("d/m/Y"); // date() est la fonction date qui permet de récupérer la date du jour : d est le numéro du jour dans le mois, m est le numéro du mois dans l'année, et y est l'année. if (isset($_POST['envoi'])) //si le formulaire a été posté alors on peut récupérer la valeur du champ { $date_evenement = implode('-',array_reverse (explode('/',$_POST['date_evenement']))); //array_reverse Inverse l'ordre des éléments d'un tableau //Si on saisie une date de format "dd/mm/yyyy" sur le formulaire, ce code transforme la date de format en 'yyyy-mm-dd' pour enregistrer dans la base mysql $heureDebut = ($_POST['heure_debut']); //Comme la méthode d'envoi est POST, la variable contient ce qu'a entré le visiteur dans le champ $heureFin = ($_POST['heure_fin']); $id_etat_evenement = $_POST['id_etat_evenement']; if(!empty($date_evenement) && !empty($heureDebut) && !empty($heureFin) && !empty($id_etat_evenement)) //empty Détermine si une variable est vide { $heure = $heureDebut; //on incrémente $heure à $heureDebut while ($heure < $heureFin) // tant que l'heure de départ n'a pas atteint l'heure de fin on fait des insert { //création de la requète d'insertion $req = "INSERT INTO jos_evenements VALUES ('', '$date_evenement', $heure, $id_etat_evenement)"; //mettre des 'guillemets' pour la date evenement mysql_query($req) or die(mysql_error()); //mysql_query Envoie une requête à un serveur MySQL //mysql_error Retourne le texte associé avec l'erreur générée lors de la dernière requête $heure = $heure + 1; // voir comment rajouter une heure à l'heure saisi car ce n'est pas forcement un int } mysql_close(); //Ferme la connexion MySQL echo '<ul><li>Evénement enregistré !</li></ul>'; } } //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Le formulaire pour ajouter un évènement //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- echo "<form method='post' action='#'> <table id='tabAjoutEvent'> <tr> Ce formulaire vous permet de saisir un nouvel évènement de la piste de karting. </tr> <tr> <br><br> </tr> <tr> <td>Date : <input type='date' size = '10' name='date_evenement' value='$date_evenement'/></td> </tr> <tr> <td> Heure de début : <select name='heure_debut' id='heure_debut' onchange='verifheure(this)'> <option value='0'>0</option> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> </select> </td> </tr> <tr> <td> Heure de fin : <select name='heure_fin' id='heure_fin' onchange='verifheure(this)'> <option value='0'>0</option> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> </select> </td> </tr> <tr> <td>Description de la piste : <select name='id_etat_evenement'>"; $sql = ('SELECT * FROM jos_etat'); //on sélectionne tout les champs de la table état $req = mysql_query($sql) or die(mysql_error()); //Envoie une requête à un serveur MySQL et Retourne le texte associé avec l'erreur générée lors de la dernière requête while($data = mysql_fetch_assoc($req)) // Tant qu'il y a des enregistrements $data on lance la requête //mysql_fetch_assoc Lit une ligne de résultat MySQL dans un tableau associatif { $optionT = $data['id_etat'].' | '.$data['description_etat']; // concaténation des deux éléments de la table état echo '<option value='.$optionT.'>' .$optionT. '</option>'; } mysql_close(); //Ferme la connexion MySQL echo "</select></td> </tr> <tr> <td><br></td> </tr> <tr> <td> <a href='javascript:void(0)'> <input name='reset' type='reset' value='Effacer' class='reset'/> </a> <a href='javascript:void(0)'> <input type='submit' name='envoi' id='envoi' value='Envoyer' class='submit'/> </a> </td> </tr> </table> </form>"; ?>
... sans code et sans que je donne de détails sur l'erreur, ca m'étonnerais :roll:
Ici:
Si tu as une erreur javascript, le formulaire sera soumis par défaut. Donc pour tester:Code:
1
2 <form method='post' action='#' onsubmit="return tafonction();">
Code:
1
2 <form method='post' action='#' onsubmit="return false;">
Et dans ton bouton submit:
... tu pourrais même changer ton type="submit" pour type="button" si jamais le formulaire s'envoi malgré tout.Code:
1
2 <input type="submit" onclick="alert(tafonction());">
oui c vrai que sans ton code et ton erreur sa va être difficile :mouarf: désolé pour tout à l'heure j'avais oublié de précisé! je vais essayer ce que tu m'as dit demain la tête reposé... bonne soirée a toi! et merci !
bonjour à tous,
levé tôt ce matin pour tester! :mrgreen:
alors voici le code :
cela ne fonctionne pas correctement d'ou peut venir l'erreur ?? ça ne m'enregistre plus rien dans ma base de données... :cry: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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172 <script> function verifheure(){ // Mise en place de la première heure var heure_Debut = document.getElementById('heure_debut').value; // Mise en place de la seconde heure var heure_Fin = document.getElementById('heure_fin').value; if (heure_Fin <= heure_Debut){ alert("erreur, l'heure de fin doit être supérieur à l'heure de début"); document.getElementById('envoi').disabled = true; } else{ document.getElementById('envoi').disabled = false; } } </script> <?php include ('traitements.php'); //L'instruction de langage include() inclut et exécute le fichier spécifié en argument, en l'occurence ici la page traitements.php css(); // Appel de la fonction css //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Procédure de récupération des données //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- $date_evenement = date("d/m/Y"); // date() est la fonction date qui permet de récupérer la date du jour : d est le numéro du jour dans le mois, m est le numéro du mois dans l'année, et y est l'année. if (isset($_POST['envoi'])) //si le formulaire a été posté alors on peut récupérer la valeur du champ { $date_evenement = implode('-',array_reverse (explode('/',$_POST['date_evenement']))); //array_reverse Inverse l'ordre des éléments d'un tableau //Si on saisie une date de format "dd/mm/yyyy" sur le formulaire, ce code transforme la date de format en 'yyyy-mm-dd' pour enregistrer dans la base mysql $heureDebut = ($_POST['heure_debut']); //Comme la méthode d'envoi est POST, la variable contient ce qu'a entré le visiteur dans le champ $heureFin = ($_POST['heure_fin']); $id_etat_evenement = $_POST['id_etat_evenement']; if(!empty($date_evenement) && !empty($heureDebut) && !empty($heureFin) && !empty($id_etat_evenement)) //empty Détermine si une variable est vide { $heure = $heureDebut; //on incrémente $heure à $heureDebut while ($heure < $heureFin) // tant que l'heure de départ n'a pas atteint l'heure de fin on fait des insert { //création de la requète d'insertion $req = "INSERT INTO jos_evenements VALUES ('', '$date_evenement', $heure, $id_etat_evenement)"; //mettre des 'guillemets' pour la date evenement mysql_query($req) or die(mysql_error()); //mysql_query Envoie une requête à un serveur MySQL //mysql_error Retourne le texte associé avec l'erreur générée lors de la dernière requête $heure = $heure + 1; // voir comment rajouter une heure à l'heure saisi car ce n'est pas forcement un int } mysql_close(); //Ferme la connexion MySQL echo '<ul><li>Evénement enregistré !</li></ul>'; } } //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Le formulaire pour ajouter un évènement //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- echo "<form method='post' action='#' onsubmit='return verifheure();'> <table id='tabAjoutEvent'> <tr> Ce formulaire vous permet de saisir un nouvel évènement de la piste de karting. </tr> <tr> <br><br> </tr> <tr> <td>Date : <input type='date' size = '10' name='date_evenement' value='$date_evenement'/></td> </tr> <tr> <td> Heure de début : <select name='heure_debut' id='heure_debut' onchange='verifheure(this)'> <option value='0'>0</option> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> </select> </td> </tr> <tr> <td> Heure de fin : <select name='heure_fin' id='heure_fin' onchange='verifheure(this)'> <option value='0'>0</option> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> </select> </td> </tr> <tr> <td>Description de la piste : <select name='id_etat_evenement'>"; $sql = ('SELECT * FROM jos_etat'); //on sélectionne tout les champs de la table état $req = mysql_query($sql) or die(mysql_error()); //Envoie une requête à un serveur MySQL et Retourne le texte associé avec l'erreur générée lors de la dernière requête while($data = mysql_fetch_assoc($req)) // Tant qu'il y a des enregistrements $data on lance la requête //mysql_fetch_assoc Lit une ligne de résultat MySQL dans un tableau associatif { $optionT = $data['id_etat'].' | '.$data['description_etat']; // concaténation des deux éléments de la table état echo '<option value='.$optionT.'>' .$optionT. '</option>'; } mysql_close(); //Ferme la connexion MySQL echo "</select></td> </tr> <tr> <td><br></td> </tr> <tr> <td> <a href='javascript:void(0)'> <input name='reset' type='reset' value='Effacer' class='reset'/> </a> <a href='javascript:void(0)'> <input type='submit' name='envoi' id='envoi' value='Envoyer' class='submit' onclick='alert(verifheure());'/> </a> </td> </tr> </table> </form>"; ?>
autre problème c'est que j'aimerais changé le message par défaut qui apparait : "undefinided" lorsque je valide le formulaire... comment faut-il faire ??
Bonjour,
Dans la fonction, ajoutez un return ou bien mettez l'alert à ce niveau-là:
Code:
1
2
3
4
5 if() return "Ok"; else return "Incohérence dans les dates";
Code:
1
2
3
4
5 if() alert("Ok"); else alert("Incohérence dans les dates");
bonjour vermine,
je met ta partie de code après mon if ???
Dans ce if-ci:
Après les .disabled. Essayez d'abord la première méthode.Code:
1
2
3
4
5
6
7
8 if (heure_Fin <= heure_Debut){ alert("erreur, l'heure de fin doit être supérieur à l'heure de début"); document.getElementById('envoi').disabled = true; } else{ document.getElementById('envoi').disabled = false; }
je ne pense pas avoir fait d'erreur mais sa ne fonctionne pas
la deuxième non plus... je ne sait pas d'ou sa vient c'est bizarreCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <script> function verifheure(){ // Mise en place de la première heure var heure_Debut = document.getElementById('heure_debut').value; // Mise en place de la seconde heure var heure_Fin = document.getElementById('heure_fin').value; if (heure_Fin <= heure_Debut){ alert("erreur, l'heure de fin doit être supérieur à l'heure de début"); document.getElementById('envoi').disabled = true; } else{ document.getElementById('envoi').disabled = false; } if() return "Ok"; else return "Incohérence dans les dates"; } </script>
Hihi. Non mais d'accord, je vais dormir un peu et puis je reviendrai. ^^
Remplacez juste le alert part return:
et oubliez mon code.Code:
1
2
3
4 if (heure_Fin <= heure_Debut){ alert("erreur, l'heure de fin doit être supérieur à l'heure de début"); document.getElementById('envoi').disabled = true;
merci vermine mais je pense que sa serait plus simple de faire une seule vérification c'est à dire :
si les heures sont ok je peux envoyer
si les heures ne sont pas ok je ne peux pas envoyer
car sur les listes déroulantes c'est galère je trouve...
voici mon code :
je dois enlever les verifheure des deux select ??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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172 <script> function verifheure(){ // Mise en place de la première heure var heure_Debut = document.getElementById('heure_debut').value; // Mise en place de la seconde heure var heure_Fin = document.getElementById('heure_fin').value; if (heure_Fin <= heure_Debut){ return("erreur, l'heure de fin doit être supérieur à l'heure de début"); document.getElementById('envoi').disabled = true; } else{ document.getElementById('envoi').disabled = false; } } </script> <?php include ('traitements.php'); //L'instruction de langage include() inclut et exécute le fichier spécifié en argument, en l'occurence ici la page traitements.php css(); // Appel de la fonction css //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Procédure de récupération des données //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- $date_evenement = date("d/m/Y"); // date() est la fonction date qui permet de récupérer la date du jour : d est le numéro du jour dans le mois, m est le numéro du mois dans l'année, et y est l'année. if (isset($_POST['envoi'])) //si le formulaire a été posté alors on peut récupérer la valeur du champ { $date_evenement = implode('-',array_reverse (explode('/',$_POST['date_evenement']))); //array_reverse Inverse l'ordre des éléments d'un tableau //Si on saisie une date de format "dd/mm/yyyy" sur le formulaire, ce code transforme la date de format en 'yyyy-mm-dd' pour enregistrer dans la base mysql $heureDebut = ($_POST['heure_debut']); //Comme la méthode d'envoi est POST, la variable contient ce qu'a entré le visiteur dans le champ $heureFin = ($_POST['heure_fin']); $id_etat_evenement = $_POST['id_etat_evenement']; if(!empty($date_evenement) && !empty($heureDebut) && !empty($heureFin) && !empty($id_etat_evenement)) //empty Détermine si une variable est vide { $heure = $heureDebut; //on incrémente $heure à $heureDebut while ($heure < $heureFin) // tant que l'heure de départ n'a pas atteint l'heure de fin on fait des insert { //création de la requète d'insertion $req = "INSERT INTO jos_evenements VALUES ('', '$date_evenement', $heure, $id_etat_evenement)"; //mettre des 'guillemets' pour la date evenement mysql_query($req) or die(mysql_error()); //mysql_query Envoie une requête à un serveur MySQL //mysql_error Retourne le texte associé avec l'erreur générée lors de la dernière requête $heure = $heure + 1; // voir comment rajouter une heure à l'heure saisi car ce n'est pas forcement un int } mysql_close(); //Ferme la connexion MySQL echo '<ul><li>Evénement enregistré !</li></ul>'; } } //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Le formulaire pour ajouter un évènement //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- echo "<form method='post' action='#' onsubmit='return verifheure();'> <table id='tabAjoutEvent'> <tr> Ce formulaire vous permet de saisir un nouvel évènement de la piste de karting. </tr> <tr> <br><br> </tr> <tr> <td>Date : <input type='date' size = '10' name='date_evenement' value='$date_evenement'/></td> </tr> <tr> <td> Heure de début : <select name='heure_debut' id='heure_debut' onchange='verifheure(this)'> <option value='0'>0</option> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> </select> </td> </tr> <tr> <td> Heure de fin : <select name='heure_fin' id='heure_fin' onchange='verifheure(this)'> <option value='0'>0</option> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> <option value='9'>9</option> <option value='10'>10</option> <option value='11'>11</option> <option value='12'>12</option> <option value='13'>13</option> <option value='14'>14</option> <option value='15'>15</option> <option value='16'>16</option> <option value='17'>17</option> <option value='18'>18</option> <option value='19'>19</option> <option value='20'>20</option> <option value='21'>21</option> <option value='22'>22</option> <option value='23'>23</option> </select> </td> </tr> <tr> <td>Description de la piste : <select name='id_etat_evenement'>"; $sql = ('SELECT * FROM jos_etat'); //on sélectionne tout les champs de la table état $req = mysql_query($sql) or die(mysql_error()); //Envoie une requête à un serveur MySQL et Retourne le texte associé avec l'erreur générée lors de la dernière requête while($data = mysql_fetch_assoc($req)) // Tant qu'il y a des enregistrements $data on lance la requête //mysql_fetch_assoc Lit une ligne de résultat MySQL dans un tableau associatif { $optionT = $data['id_etat'].' | '.$data['description_etat']; // concaténation des deux éléments de la table état echo '<option value='.$optionT.'>' .$optionT. '</option>'; } mysql_close(); //Ferme la connexion MySQL echo "</select></td> </tr> <tr> <td><br></td> </tr> <tr> <td> <a href='javascript:void(0)'> <input name='reset' type='reset' value='Effacer' class='reset'/> </a> <a href='javascript:void(0)'> <input type='submit' name='envoi' id='envoi' value='Envoyer' class='submit' onclick='alert(verifheure());'/> </a> </td> </tr> </table> </form>"; ?>
quelqu'un a-t-il la solution?
Ceci ne fonctionne pas ?
Code:
1
2
3
4 if (heure_Fin <= heure_Debut){ document.getElementById('envoi').disabled = true; return "erreur, l'heure de fin doit être supérieur à l'heure de début";
Arf oui je vois.
Parfois vous appeler verifheure d'une façon, et ailleurs d'une autre:
Choisissez une des deux méthodes et utilisez là partout. Modifiez votre code.Code:
1
2
3
4 onchange="verifheure();" //plus loin onclick="alert(verifheure());"
Si c'est la méthode un, gardez l'alert dans votre fonction.
Si c'est la méthode deux, changez l'alert en return tout en sachant que le return vient après les .disabled.
Je vois que ça progresse :mrgreen:
Il me semble que certains problèmes n'en étaient pas vraiment : la soumission à tort du formulaire n'était-elle pas uniquement dû à ces href (qui n'ont absolument rien à faire ici : d'où t'es venue cette idée saugrenue ? 8O )Vire-les, ça évitera les problèmes "artificiels" :aie:Code:
1
2
3
4
5
6
7 <a href='javascript:void(0)'> <input name='reset' type='reset' value='Effacer' class='reset'/> </a> <a href='javascript:void(0)'> <input type='submit' name='envoi' id='envoi' value='Envoyer' class='submit' onclick='alert(verifheure());'/> </a>
Sinon, pour l'histoire de l'heure de fin à choisir avant l'heure de début : il faut que tes 2 listes proposent un choix par défaut qui ne soit pas une heurepuis de gérer le cas dans la fonctionCode:<option value='-' selected='selected'>-</option>
Avec les return, tu peux utiliser la même fonction dans le onchange des select (enlève le paramètre this lors de l'appel : tu ne l'utilises pas) et dans le onsubmit du form (il faut les 2 ... ou plutôt les 3).Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 function verifheure(){ // Mise en place de la première heure var heure_Debut = document.getElementById('heure_debut').value; // Mise en place de la seconde heure var heure_Fin = document.getElementById('heure_fin').value; if (heure_Debut != '-' && heure_Fin != '-') { if (heure_Fin <= heure_Debut){ alert("erreur, l'heure de fin doit être supérieur à l'heure de début"); document.getElementById('envoi').disabled = true; return false; } else{ document.getElementById('envoi').disabled = false; } } else return false; return true; }
A+