Bonjour les amis,
Voici mon pitit problème: j'ai un zoli formulaire, dont les champs sont validés via jquery (testé et parfaitement fonctionnel) et mon php pour la gestion d'envois du mail(fonctionnel également). tout est ok séparément. Mais en repassant le bouton en type submit l'envoie du mail se fait directement sans tenir compte des validations Jq (j ai le temps de voir les toggle se faire avant la redirection) et c'est là que je sèche. je n arrive pas à faire en sorte que le submit ne se fasse que si les validations sont ok.
voici le code et mes remerciements pour le temps que vous voudrez bien m'accorder.
/bizz
Voici mon pitit problème: j'ai un zoli formulaire, dont les champs sont validés via jquery (testé et parfaitement fonctionnel) et mon php pour la gestion d'envois du mail(fonctionnel également). tout est ok séparément. Mais en repassant le bouton en type submit l'envoie du mail se fait directement sans tenir compte des validations Jq (j ai le temps de voir les toggle se faire avant la redirection) et c'est là que je sèche. je n arrive pas à faire en sorte que le submit ne se fasse que si les validations sont ok.
voici le code et mes remerciements pour le temps que vous voudrez bien m'accorder.
/bizz
<form action="contacts.php" method="POST">
<div class="form-group row">
<div class="col-md-1"></div>
<label for="nomform" class="col-md-5 col-form-label">Nom*</label>
<div class="col-md-5">
<input type="text" maxlength="50" name="nom" class="form-control notempty" id="nomform" placeholder="Votre nom">
<small id="nomhelp1" class="form-text text-danger d-none">
Veuillez saisir votre nom.
</small>
</div>
<div class="col-md-1"></div>
</div>
<div class="form-group row">
<div class="col-md-1"></div>
<label for="prenomform" class="col-md-5 col-form-label">Prénom*</label>
<div class="col-md-5">
<input type="text" maxlength="50" name="prenom" class="form-control notempty" id="prenomform" placeholder="Votre prénom">
<small id="nomhelp2" class="form-text text-danger d-none">
Veuillez saisir votre prénom.
</small>
</div>
<div class="col-md-1"></div>
</div>
<div class="form-group row">
<div class="col-md-1"></div>
<label for="email" class="col-md-5 col-form-label">Mail*</label>
<div class="col-md-5">
<input type="email" class="form-control notempty" id="email">
<small id="nomhelp3" class="form-text text-danger d-none">
Veuillez saisir une adresse mail.
</small>
</div>
<div class="col-md-1"></div>
</div>
<div class="form-group row">
<div class="col-md-1"></div>
<label for="sujet" class="col-md-5 col-form-label">Sujet</label>
<div class="col-md-5">
<input type="text" maxlength="50" name="sujet" id="sujet" class="form-control" placeholder="Sujet">
</div>
<div class="col-md-1"></div>
</div>
<div class="form-group row">
<div class="col-md-1"></div>
<label for="message" class="col-md-5 col-form-label">Message</label>
<div class="col-md-5">
<textarea name="message" spellcheck="true" id="message" rows="6" class="form-control" placeholder="Votre message"></textarea>
<p id="compteur">0 mots - 0 Caracteres / 3000</p>
</div>
<div class="col-md-1"></div>
</div>
<br>
<div class="form-group row">
<div class="col-md-1"></div>
<label for="connupar" class="col-md-5 col-form-label" id="connupar">Comment nous <br> avez-vous connu?</label>
<div class="col-md-5 ">
<input type="checkbox" name="connupar " value="Recherche Internet"> Recherche Internet<br>
<input type="checkbox" name="connupar " value="Bouche à Oreilles"> Bouche à Oreille<br>
<input type="checkbox" name="connupar " value="réseaux sociaux"> réseaux sociaux<br>
<input type="checkbox" name="connupar " value="Autre"> Autre<br>
</div>
<div class="col-md-1"></div>
</div>
<br>
<div class="form-group row mt-3">
<div class="col-md-1"></div>
<div class="pt-5"></div>
<button type="submit" class="col-md-10 boutonSend btn btn-outline-dark mb-4 form-control ">Envoyer</button>
<div class="col-md-3"></div>
<button type="reset" class="col-md-6 col-sm-3 btn btn-outline-dark mb-3 form-control ">Reset</button>
<div class="col-md-3"></div>
</div>
</form>
// Controle de validité des inputs
$('.boutonSend').on('click', function(event, target){
checkEmptyInputs();
});
function checkEmptyInputs(){
$(".notempty").each(function (i, elt){
if(elt.value == ""){
toggleInputStatus("#" + elt.id);
$(elt).one('focusin', function(){
toggleInputStatus("#" + elt.id)
})
}
else if(elt.id == "email"){
checkMailFormat("#email");
$(elt).one('focusin', function(){
toggleInputStatus("#" + elt.id)
})
}
})
}
//controle des forms
function checkMailFormat(selector){
let pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
let saisie = $(selector)[0].value;
! saisie.match(pattern) ?
toggleInputStatus(selector, "Votre adresse email n'est pas une adresse valide !")
: null;
}
function toggleInputStatus(selector, message){
$(selector).toggleClass("border-danger");
$(selector).next().toggleClass("d-none");
message ? $(selector).next()[0].textContent = message : null;
}
function toggleInputStatus2(selector, message){
$(exampleCheck3).next().toggleClass("d-none");
message ? $(exampleCheck3).next()[0].textContent = message : null;
}
function toggleInputStatus3(selector, message){
$(uname1).next().toggleClass("d-none");
message ? $(uname1).next()[0].textContent = message : null;
}//fin controle form
<?php
// Pour les champs $expediteur / $copie / $destinataire, séparer par une virgule s'il y a plusieurs adresses
$destinataire = 'xxxx@yyyyy.fr';
//taitement des variables par htmlspecialchars//
$expediteur = htmlspecialchars($_POST['mail']);
$objet = htmlspecialchars($_POST['sujet']);
$nom = htmlspecialchars($_POST['nom']);
$prenom = htmlspecialchars($_POST['prenom']);
$message = htmlspecialchars($_POST['message']);
$headers = 'MIME-Version: 1.0' . "\n"; // Version MIME
$headers .= 'Content-type: text/html; charset=utf8'."\n"; // l'en-tete Content-type pour le format HTML
$headers .= 'To: '.$destinataire."\n"; // Mail de reponse
$headers .= 'From: "via site"<'.$expediteur.'>'."\n"; // Expediteur
//tableau du corp du message
$message_content = '
<table>
<tr>
<td><b>Emetteur du message:</b></td>
</tr>
<tr>
<td>'. $nom . '</td>
</tr>
<tr>
<td>'. $prenom . '</td>
</tr>
<tr>
<td><b>Contenu du message:</b></td>
</tr>
<tr>
<td>'. $message .'</td>
</tr>
</table>
';
//fonction d 'envoi
if(mail($destinataire, $objet, $message_content, $headers))
{
echo "Votre message a bien été envoyé merci. Vous allez être rédirigé vers la page d'accueil. ";
}
else // Non envoyé
{
echo '<script languag="javascript">alert("Votre message n\'a pas pu être envoyé");</script>';
}
//redirection
header("refresh:5;url=index.html");
?>