Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1223 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Effacement d'un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Effacement d'un formulaire

n°1225483
bong03
Posté le 18-10-2005 à 15:40:52  profilanswer
 

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

mood
Publicité
Posté le 18-10-2005 à 15:40:52  profilanswer
 

n°1225489
multani
Dépressionnisé
Posté le 18-10-2005 à 15:48:17  profilanswer
 

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 :


In general, a control's "initial value" may be specified with the control element's value attribute.

n°1225501
bong03
Posté le 18-10-2005 à 15:59:29  profilanswer
 

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 ?

n°1225517
multani
Dépressionnisé
Posté le 18-10-2005 à 16:18:12  profilanswer
 

Fais un bout de code en javascript au pire [:spamafote]
 
Et pour ton code, c'est _beaucoup_ plus lisible sur le forum si tu le mets entre balise [fixed][/fixed] ou [cpp][/cpp] ...

n°1225524
bong03
Posté le 18-10-2005 à 16:23:22  profilanswer
 

Je vaux absomuemnt éviter le javascript.
 
J'ai ajouter onreset dans la balise form et cela donne :


<form name="formulaire" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" onreset="<?php $societe=''; ?>" >


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 !

n°1225530
FlorentG
Posté le 18-10-2005 à 16:30:24  profilanswer
 

Faut pas utiliser de bouton reset, mais un bouton submit :

<form...>
  <div>
   <label>...
   ...
   <input type="submit" name="action" value="Effacer" />
   <input type="submit" name="action" value="Envoyer" />
  </div>
</form>


Puis dans le script PHP correspondant :

$action = isset($_POST['action']) ? $_POST['action'] : '';
 
if($action == 'Effacer') {
 
  // Ici on met une valeur nulle à chaque champ
 
} elseif($action == 'Envoyer') {
 
  // Sauvegarde
}


Message édité par FlorentG le 18-10-2005 à 16:30:47
n°1225539
bong03
Posté le 18-10-2005 à 16:36:30  profilanswer
 

Ah ouais ! cool l'astuce !
 
Bien vu et merci !

n°1225559
bong03
Posté le 18-10-2005 à 17:03:52  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Effacement d'un formulaire

 

Sujets relatifs
[RESOLU] [FORMULAIRE] probleme de récup des donnéescomment recoit-on son formulaire html sur son mail
créer un formulaire a partir d'une DTD grace a PHPecrire sur un page via un formulaire
personnaliser texte formulaireformulaire envoi mail asp
Pb reconnaissance <div> sous FF (mise en page formulaire IE/FF)[resolu] Petit souci sur le php de mon formulaire
[résolu]Formulaire en PHPHTML & JS valider les donnée d'un formulaire par une pop-up
Plus de sujets relatifs à : Effacement d'un formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR