Champ obligatoire d'un formulaire [Résolu/Fermé]

Signaler
Messages postés
15
Date d'inscription
samedi 28 août 2010
Statut
Membre
Dernière intervention
3 septembre 2010
-
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
-
Bonjour vous !!!

j'ai ENCORE un souci :s ( bah oui j'suis désolé, excusez moi :( )

c'est toujours au sujet de l'envoi des emails.

j'ai ajouté un script pour vérifier les champs obligatoires avant d'envoyer le mail.

j'ai testé avec un seul champ pour voir, et le problème est que lorsque je ne rempli pas ce champ, il me dit bien que j'ai oublié de le remplir ( donc clic sur ok en dessous du message).
mais le mail s'envoie quand même juste apres .... c'est tout de même embêtant ......

une idée sur mon erreur ?!

formmail.php
<?php
$TO = htmlspecialchars($_POST["Email"]);
$FROM = "";
$subject = "commande";
$message = "Bonjour,";

while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://lien_redirection.html");

?>


script pour vérifier les champs:
<SCRIPT LANGUAGE="JavaScript">
function verifForm(formulaire)
  {
  if(formulaire.nom.value == "")
    alert('Vous avez oublié de saisir votre nom !');
  else
    formulaire.submit();
}
</SCRIPT>



bouton d'envoi:
<FORM>
<input type=submit value="Commander onClick="verifForm(this.form)">&nbsp;
</form>



4 réponses

Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
884
Voilà le principe, à compléter bien sur:

<script type="text/javascript" language="javascript">
//mets les noms de balise en minuscules, et le type de script

function verif_form(formulaire){
  if(formulaire.nom.value == ""){
    alert('vous avez oublié de saisir votre nom !');
	 return false; //on renvoie false et on sort de la fonction, le formulaire n'ets pas envoyé
  }
  ///// ci dessous tu peux rajouter d'autres champs a tester de la même façon if(.... return false
  
  /////
  
  //et a la fin de la fonction:
  //si on arrive la c'est que tu est ok donc on renvoie true ce qui autorise l'envoi du formulaire
  return true;
}
</script>

<form name="form1" method="post" action="formmail.php" onSubmit="return verif_form('form1');">
<!-- ci dessus le onSubmit="return ...... attend un retour true pour poster le formulaire, si false ça ne part pas -->
<input type="submit" name="commander" value="Commander" />
</form>
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
15
Date d'inscription
samedi 28 août 2010
Statut
Membre
Dernière intervention
3 septembre 2010

Re !

j'ai un peu avancé ... une peu ....

j'ai changé mon bouton en:
<FORM>
<input type="button" value="Envoyer" onClick="verifForm(this.form)">&nbsp;
</form>


donc, si le champ "Nom" n'est pas rempli, il ne l'envoi pas comme prevu.

si il est rempli, je suis redirigé vers la page prévu dans le formmail.php
Header("Location: http://lien_redirection.html");


le problème est que l'email ne s'envoie pas, bien que le formmail à l'air d'avoir répondu a la commande
Messages postés
15
Date d'inscription
samedi 28 août 2010
Statut
Membre
Dernière intervention
3 septembre 2010

Bonjour Alian_42

j'ai fais comme tu as dit, mais maintenant, champ rempli ou non, le formmail continu son travail sans vérifier les champs.

voila se que j'ai fait

<script type="text/javascript" language="javascript">
//mets les noms de balise en minuscules, et le type de script

function verif_form(formulaire){
  if(formulaire.nom.value == ""){
    alert('vous avez oublié de saisir votre nom !');
	 return false; //on renvoie false et on sort de la fonction, le formulaire n'ets pas envoyé
  }
  ///// ci dessous tu peux rajouter d'autres champs a tester de la même façon if(.... return false
  
  /////
  
  //et a la fin de la fonction:
  //si on arrive la c'est que tu est ok donc on renvoie true ce qui autorise l'envoi du formulaire
  return true;
}
</script>


<div align=center>
<form id=calcul name=calcul method=POST action=formmail.php onSubmit="retourn verif_form('calcul');">
<input type=hidden name=Objet value=Commande>
<table>
<br><br>
<tr><td><b>Nom:</b></td>
<td><input type=text name=nom size=45><br><td></tr>
<tr><td><b>Prénom:</b></td>
<td><input type=text name=Prénom size=45><br></td></tr>
<tr><td><b>Adresse complète:</b></td>
<td><input type=text name=Adresse_complète size=45><br></td></tr>
<tr><td><b>Pays:</b></td>
<td><input type=text name=Pays size=45><br></td></tr>
<tr><td><b>Votre Email:</b></td>
<td><input type=text name=Email size=45><br></td></tr>
<tr><td><b>N° de telephone:</b></td>
<td><input type=text name=N°_telephone size=45><br><br></td></tr>

[...]

<input type="submit" name="commander" value="commander" />&nbsp;
</form>
<input type="button" value="Annuler" onClick="javascript:document.location.href='index.html'"/> <br>


( a savoir que j'ai deja 2 formulaires imbriqués, de calcul et d'envoi d'email)
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
884
<script type="text/javascript" language="javascript">
//mets les noms de balise en minuscules, et le type de script

function verif_form(formulaire){
  if(formulaire.nom.value == ""){
    alert('vous avez oublié de saisir votre nom !');
	 return false; //on renvoie false et on sort de la fonction, le formulaire n'ets pas envoyé
  }
  ///// ci dessous tu peux rajouter d'autres champs a tester de la même façon if(.... return false
  
  /////
  
  //et a la fin de la fonction:
  //si on arrive la c'est que tu est ok donc on renvoie true ce qui autorise l'envoi du formulaire
  return true;
}
</script>
<!--
c'est onSubmit="return ...  et pas retourn
ensuite mets des " a toutes les valeurs des attributs des balises ex name="nom"
pas d'accents ni de caracteres spéciaux dans les name=
et pas de <input en dehors du formulaire
-->

<div align="center">
<form id="calcul" name="calcul" method="POST" action="formmail.php" onSubmit="return verif_form('calcul');">
<input type="hidden" name="Objet" value="Commande">
<table>
<br><br>
<tr><td><b>Nom:</b></td>
<td><input type="text" name="nom" size="45"><br><td></tr>
<tr><td><b>Prénom:</b></td>
<td><input type="text" name="Prenom" size="45"><br></td></tr>
<tr><td><b>Adresse complète:</b></td>
<td><input type="text" name="Adresse_complete" size="45"><br></td></tr>
<tr><td><b>Pays:</b></td>
<td><input type="text" name="Pays" size="45"><br></td></tr>
<tr><td><b>Votre Email:</b></td>
<td><input type="text" name="Email" size="45"><br></td></tr>
<tr><td><b>N° de telephone:</b></td>
<td><input type="text" name="Num_telephone" size="45"><br><br></td></tr>

[...]

<input type="submit" name="commander" value="commander" />&nbsp;
<input type="button" value="Annuler" onClick="javascript:document.location.href='index.html'"/> <br>
</form>