Dash
mercredi 26 janvier 2005 à 23:10
Attention ! La methode est traitre. L'usage de ce javascript s'il est mal gere cote serveur peut faire plus de degats qu'autres choses...
Variante de l'exemple indique :
CITATION
<form action="traitement.php" method="post"
onsubmit="return soumettreUneSeuleFois(this);">
<fieldset>
<input name="champ" type="text" />
<input name="champ1" type="text" />
<input name="champ2" type="text" />
<input name="champ3" type="text" />
<input name="champ4" type="text" />
<input name="champ5" type="text" />
<input name="champ6" type="text" />
<input type="submit" name="submit" value="soumettre" />
</fieldset>
</form>
Si la fonction soumettreUneSeuleFois() desactive le bouton "submit" lors de la validation du formulaire, la variable $_REQUEST['submit'] n'existera plus !
Donc, ca n'aura plus aucun sens par exemple de faire le test suivant en PHP :
CITATION
if ( !empty($_REQUEST['submit']) )
{
// traitement PHP du formulaire si $_REQUEST['submit'] non vide
//...
// malheureusement, a cause du javascript, $_REQUEST['submit'] sera desactive, donc inexistant, vide...
}
else
{
//..
}
Il faut y penser. Je me suis fait surprendre sur mon blog...
Solution : un champs hidden (par exemple "copy_submit") qui servira de temoin en cas de besoin