voila mon form envoie des donnees dans une base .
j aimerai savoir si c est possible de vider le formulaire apres envoi pour eviter que les donnees soient renvoyees une deuxieme fois quand on clique sur le bouton actualiser du navigateur.
merci
Version imprimable
voila mon form envoie des donnees dans une base .
j aimerai savoir si c est possible de vider le formulaire apres envoi pour eviter que les donnees soient renvoyees une deuxieme fois quand on clique sur le bouton actualiser du navigateur.
merci
:idea:Code:document.forms[0].reset()
Je pense que la technique pour empecher l'actualisation ne se fait pas au niveau client mais plutot au niveau serveur.
Si tu utilise PHP ... j'ai une solution.
oui j utilise PHP pout renseigner la base
est ce que je peux avoir ta solution?
meerci
ben niveau javascript il suffit de vider le formulaire et de masque le bouton submit ...
comment tu veux faire cela
parce que moi je l ai fait mais cela ne fonctionne pas du tout
parce que j envoie les donnees sur la base
j aimerai bien que tu m explique comment tu t y prends pour ça?
Au niveau PHP,
tu créée un champ caché dans ton formulaire, qur tu initialise avec le datetime du moment.
Puis dans ton php qui receptionne le formulaire tu fais :Code:<input type="hidden" name="verif_post" value="<? time(); ?>" />
Code:
1
2
3
4 session_start(); if($_SESSION['verif_post'] == $_POST['verif_post']) die('Rafraichissement interdit'; $_SESSION['verif_post'] = $_POST['verif_post'];
Don si ta page de de validation de formulaire est actualisée ... il y aura une erreur de rafraichissement.
fais voir la tête de ton form ...
en simplifié (pas 18000 lignes ...)
voici leCode:
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 <html> <head> <script language="javascript" type="text/javascript" src="controle.js"></script> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css"> <!-- body,td,th { color: #993333; font-weight: bold; font-family: Verdana, Arial, Helvetica, sans-serif; } body { background-color: #FFCC33; } --> </style></head> <body> <form id="identifiant" action="index.php" method="POST" align="center" valign="middle" onSubmit="return controle();"> <table align="center" bordercolor="#FF6633"> <tr><td>Identifiant</td><td> <input name="login" type="text" maxlength="40"> </td> </tr> <tr><td>Mot de Passe</td><td> <input type="password" name="mpasse" maxlength="32" ></td></tr> <tr><td>E-Mail</td><td> <input name="email" type="text" maxlength="50"></td></tr> <tr><td><input type="submit" name="JesuisLa" value="Envoyer"></td><td> <input type="reset" name="saluton" value="Annuler"></td></tr> </table> </form> </body> </html>
j essai ton code AurelBUD
Et je te dis ce qu il en est .
et tu le rend visible à nouveau si la focntin test sur le onsubmit te retourne false...Code:<input type="submit" id="JesuisLa" value="Envoyer" onclick='this.style.visibility='hidden' >
et dans le onload de la page
ça devrait faire l'affaire ...Code:<body onload="document.forms[0].reset()" >
SpaceFrog ton code ne fonctionne pas .
il en est de meme pour AurtelBUD
Montre comment tu l'as implémenté parce que chez moi ca fonctionne ...
AurelBUD ton second je l'inserer où?
parce que j ai essaye trois niveau differents et c est toujours un parse error
Oui j ai oublié une parenthèse à la fin du die ...
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 <?php // connection a la base en local include ("../Configuration/connexionIdentifiant.php"); if (isset($_POST['login']) && isset($_POST['mpasse']) && isset($_POST['email']) ) { $login= $_POST['login']; $mpasse= $_POST['mpasse']; $email= $_POST['email']; if (empty($login) || empty($mpasse) || empty($email)) { echo "Veillez remplir les champs s'il vous plait";} else{ mysql_query(" INSERT INTO identifiant SET login='$login',mpasse='$mpasse',email='$email'"); //header("Location: http://127.0.0.1/controle/index.php"); //exit; echo mysql_error(); } } session_start(); if($_SESSION['verif_post'] == $_POST['verif_post']) die('Rafraichissement interdit'; $_SESSION['verif_post'] = $_POST['verif_post']; $resultat=mysql_query("SELECT DISTINCT login,mpasse,email FROM identifiant ORDER BY login"); echo mysql_error(); mysql_close(); ?> <html> <head> <style type="text/css"> <!-- body,td,th { font-family: Verdana, Arial, Helvetica, sans-serif; color: #993333; font-weight: bold; font-size: 10px; } body { background-color: #FFCC66; } .Style1 {color: #CC0000} --> </style> <title>Liste des Utilisateurs</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="text/javascript" src="controle.js" ></script> <!-- <meta http-equiv="refresh" content="2; url=http://127.0.0.1/Amis/contacts.php"> --> </head> <body onLoad="document.forms[0].reset()"> <a href="formIdentifiant.php">Ajouter un Utilisateur</a> <table width="334" height="37" border="1" align="center" bordercolor="#FF0066" bgcolor="#FFFFFF"> <tr bgcolor="#FFFFFF"> <td width="30" height="31"><span class="Style1">Login</span></td> <td width="47"><span class="Style1">Mot de Passe</span></td> <td width="33"><span class="Style1">E-Mail</span></td> <?php while ($ligne =mysql_fetch_array($resultat)) { $login = $ligne["login"]; $mpasse = $ligne["mpasse"]; $email = $ligne["email"]; echo "<tr>"; echo "<td>".$login."</td>"; echo "<td>".$mpasse."</td>"; echo "<td><a href='<?php echo $email; ?>'> Ecrire à $login<td width='196'></td>"; echo "</tr>"; } ?> </table> <a href="form_Identifiant.thml">Ajout un Utilisateur</a> </body> </html> <?php mysql_free_result($resultat); ?>
Il manque toujours la parenthes à la fin du die !!!
super man
La je te dis Chapeau
je ne sais pas si tu fan de bob marley ou pas
YEAH RASTAFARI
je crois que je me suis emflamme un peu vite mais ça ne fonctionne toujours pas .
c est quand je suis retourne sur la gestion de base données il m a enregistrer dix fois le meme tuple
mais comme dans ma requete de SELECT j ai mis distinct je ne pouvais pas voir ça .
en fait il remplit la base mais cela ne se voit pas sur la page qu on renvoie.
je pense que je vais rester sur mon ancien code qui consiste a faire un header("Location: nom_du_site/nom_de_la_page.php");
merci en tout cas d avoir essayer c etait sympa de votre part .
slaut et bonne fin de matinee
Oui c est normal que ton code ne fonctionne pas car tu fais ta requete INSERT avant de tester ta variable POST.
Le test est la premiere chose que tu dois faire. Avant meme la connexion à la base.