[AJAX] Validation du formulaire avant d'appeler un script PHP
Bonjour,
J'ai fait une méthode Ajax pour l'appel d'un script PHP qui consiste a envoyer un mail en lui passant les champs du formulaire.
Voici l'appel Ajax :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
$("#contactForm").submit( function() { // à la soumission du formulaire
$.ajax({ // fonction permettant de faire de l'ajax
type: "POST", // methode de transmission des données au fichier php
url: "actionContact.php", // url du fichier php
data: "sujet="+$("#sujet").val()+"&nom="+$("#name").val()+"&email="+$("#email").val()+"&message="+$('textarea[id="message"]').val() , // données à transmettre
success: function(msg){ // si l'appel a bien fonctionné
if(msg==1) // si la connexion en php a fonctionnée
{
$("div.post").html("<span id=\"confirmMsg\">Vous êtes maintenant connecté.</span>");
// on désactive l'affichage du formulaire et on affiche un message de bienvenue à la place
}
else // si la connexion en php n'a pas fonctionnée
{
alert('erreurs');
$("div.post").html("Erreur lors de la connexion, veuillez vérifier votre login et votre mot de passe.");
// on affiche un message d'erreur dans le span prévu à cet effet
}
}
});
return false; // permet de rester sur la même page à la soumission du formulaire
}); |
Je voudrais valider le formulaire avant d'appeler ce script soit en jQuery (idéal parce que j'ai testé) ou avant de faire l'appel Ajax.
Voici le formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
<form method="post" name="contactForm" id="contactForm">
<p>Hi,</p>
<label for="sujet">Sujet: </label>
<input type="text" name="sujet" value="" id="sujet" />
<label for="message">Message : </label>
<textarea name="message" value="Votre Message" id="message" ></textarea>
<p></p>
<label for="name">Nom: </label>
<input type="text" name="name" value="" id="name" />
<label for="email">Email: </label>
<input type="text" name="email" value="" id="email" />
<input type="submit" name ="env" id ="env" value="Envoyer" />
</form> |
Comment faire cela ?
Merci.