Effacement d'un formulaire - PHP - Programmation
Marsh Posté le 18-10-2005 à 15:48:17
Tout simplement parce que le bouton reset n'efface pas les champs des formulaires, il se contente de leur redonner leur valeur par défaut.
Donc, si au rechargement de ta page après erreur, tu donnes une valeur à la propriété value de tes champs, le clique sur le bouton reset redonne ses valeurs aux champs.
Tout est marqué là dedans :
- http://www.w3.org/TR/html4/interac [...] set-button
- http://www.w3.org/TR/html4/interac [...] tial-value
Citation : |
Marsh Posté le 18-10-2005 à 15:59:29
Effectivement j'ai ceci :
<input class="forms" type="text" name="societe" size="31" maxlength="50" <?php if (isset($_POST['societe'])) { echo "value='$societe'"; } ?> />
Cela sert lors du réaffichage de la page pour que ce que la personne à saisie avant de cliquer sur le bouton "Envoyer" voit ce qu'elle a saisi en cas d'erreur. Je ne peux donc pas enlever : <?php if (isset($_POST['societe'])) { echo "value='$societe'"; } ?> de mon champ de formulaire.
Je ne vois pas comment faire pour que le bouton "Effacer" fonctionne quand même. Pourrais-tu m'aider ?
Marsh Posté le 18-10-2005 à 16:18:12
Fais un bout de code en javascript au pire
Et pour ton code, c'est _beaucoup_ plus lisible sur le forum si tu le mets entre balise [fixed][/fixed] ou [cpp][/cpp] ...
Marsh Posté le 18-10-2005 à 16:23:22
Je vaux absomuemnt éviter le javascript.
J'ai ajouter onreset dans la balise form et cela donne :
|
Seulement, il m'efface le contenu du champ "societe" lors du rechargement de la page (clic sur "Envoyer" et erreur) sans même avoir appuyer sur le bouton "Effacer".
Help !
Marsh Posté le 18-10-2005 à 16:30:24
Faut pas utiliser de bouton reset, mais un bouton submit :
<form...> |
Puis dans le script PHP correspondant :
$action = isset($_POST['action']) ? $_POST['action'] : ''; |
Marsh Posté le 18-10-2005 à 17:03:52
Je viens d'essayer et ça marche bien sauf pour les champs types radio-bouton et cases-à-cocher.
Comment réinitialiser ces 2 types de champs ?
Merci.
Marsh Posté le 18-10-2005 à 15:40:52
Bonjour,
Je rencontre le problème suivant :
J'ai créé un formulaire : <form name="formulaire" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
avec un bouton d'effacement : <input name="efface" type="reset" value="Effacer" />
et un bouton de validation : <input name="valide" type="submit" value="Envoyer" />
Au tout début de mon fichier PHP qui contient le formulaire j'ai :
<?php
settype($msoc,"string" );
settype($soc,"boolean" );
$soc=TRUE;
....
if (isset($_POST['valide']))
{
$societe=data($_POST['societe']);
if (empty($societe))
{
$soc=FALSE;
$msoc="Vous devez saisir le nom de votre société ou de votre cabinet.";
}
else
$soc=TRUE;
....
if ($soc AND $civ AND $cou AND $nam AND $pre AND $tex AND $numt AND $lco AND $lge)
{
header("Location: errenv.php" );
}
}
?>
Voici ce qui se passe :
Quand je rentre sur la page la première fois, si je rentre des infos dans mes champs de formulaire et que je clic sur le bouton "Effacer" (avant de cliquer sur le bouon "Envoyer" ), tout s'efface ce qui est normal.
Par contre, dès que je clique sur le bouton "Envoyer" et qu'il y a des erreurs (certains champs du formulaire sont obligatoires), on reviebt alors sur la même page avec affichage de message d'erreurs. Et alors si maintenant je clique sur le bouton "Effacer" rien de n'efface !
Pourquoi et comment y remédier ?
Merci pour vos réponses.
Alf