Champ obligatoire d'un formulaire

Résolu
Damien1987 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   -
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>



A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
Damien1987 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Damien1987 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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)
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
<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>
0