Bonjour,
Je suis en train de créer un formulaire de contact. Tout marche, le seul problème que j'ai est que lorsque je m'envoie la reponse par mail mon input radio me renvoie la réponse "oui" meme si je coche non.
<form id="myForm">
<label> Nom </label>
<input id="name" type="text" placeholder="Nom" required>
<label> Prénom </label>
<input id="prenom" type="text" placeholder="Prenom" required>
<label> Adresse Mail </label>
<input id="email" type="email" placeholder="Adresse Email" required>
<p> Seriez-vous présent <br> à la soirée ? </p>
<input type="radio" id="radio" name="radio" value="Oui">
<label for="radio"> oui </label>
<input type="radio" id="radio" name="radio" value="Non">
<label for="radio"> Non </label>
<p class="textarea"> Message </p>
<textarea id="body" rows="5" placeholder="Message" required></textarea>
<button type="button" onclick="sendEmail()" value="Envoyer mon message"> Envoyer mon message </button>
</form>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function sendEmail(){
var name = $("#name");
var prenom = $("#prenom");
var email = $("#email");
var radio = $("#radio");
var body = $("#body");
if(isNotEmpty(name) && isNotEmpty(prenom) && isNotEmpty(email) && isNotEmpty(body) && isNotEmpty(radio)){
$.ajax({
url: 'sendEmail.php',
method: 'POST',
dataType: 'json',
data:{
name: name.val(),
prenom: prenom.val(),
email: email.val(),
radio: radio.val(),
body: body.val()
}, success: function(response){
$('#myForm')[0].reset();
$('.sent-notification').text ("Votre message à bien été envoyé.");
}
});
}
}
function isNotEmpty(caller){
if(caller.val() == ""){
caller.css('border','1px solid red');
return false;
}
else
{
caller.css('border','');
return true;
}
}
</script>
<?php
use PHPMailer\PHPMailer\PHPMailer;
if(isset($_POST['name']) && isset($_POST['prenom']) && isset($_POST['email']) && isset($_POST['radio'])){
$name = $_POST['name'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$radio = $_POST['radio'];
$body = $_POST['body'];
require_once "PHPMailer/PHPMailer.php";
require_once "PHPMailer/SMTP.php";
require_once "PHPMailer/Exception.php";
$mail = new PHPMailer();
//smtp settings
$mail->isSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "smonmaildenvoie@gmail.com";
$mail->Password = "mdp";
$mail->Port = 465;
$mail->SMTPSecure = "ssl";
// email settings
$mail->isHTML(true);
$mail->setFrom ($email, $name , $prenom);
$mail->addAddress("monmaildereception");
$mail->Body = ("Nom : $name. <br/><br/> Prénom : $prenom. <br/><br/> Adresse Mail : $email. <br/><br/> seriez vous à la soirée ? : $radio. <br/><br/> Corps du message : $body.");
if($mail->send()){
$status = "success";
$response = "Votre email a bien été envoyé";
}
else
{
$status = "failed";
$response = "Something is wrong: <br>" . $mail->ErrorInfo;
}
exit(json_encode(array("status" => $status, "response" => $response)));
}
?>
Je n'arrive pas a trouver de réponse depuis hier.
Pouvez-vous m'aider svp
Merci beaucoup
Sarah
Lorsque je mets 2 ID différents, et que je rajoute le 2eme ID dans mon pho ça me met quand meme la réponse oui alors que le non est coché..
Bonjour,
J'ai modifié partout l'ID pour que mon php récupère les deux ID différents, mais lorsque je récupère la réponse, je récupère et le oui et le non.
Je remet le code modifé :
<label> Nom </label>
<br/>
<input id="name" type="text" placeholder="Nom" required>
<br/><br/>
<label> Prénom </label>
<br/>
<input id="prenom" type="text" placeholder="Prenom" required>
<br/><br/>
<label> Adresse Mail </label>
<br/>
<input id="email" type="email" placeholder="Adresse Email" required>
<br/><br/>
<p> Seriez-vous présent <br> à la soirée ? </p>
<input type="radio" id="radio" name="radio" value="Oui">
<label for="radio"> oui </label>
<input type="radio" id="radio1" name="radio" value="Non">
<label for="radio1"> Non </label>
<br/><br/>
<p class="textarea"> Message </p>
<textarea id="body" rows="5" placeholder="Message" required></textarea>
<br/><br/>
<button type="button" onclick="sendEmail()" value="Envoyer mon message"> Envoyer mon message </button>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function sendEmail(){
var name = $("#name");
var prenom = $("#prenom");
var email = $("#email");
var radio = $("#radio");
var radio1 = $("#radio1");
var body = $("#body");
if(isNotEmpty(name) && isNotEmpty(prenom) && isNotEmpty(email) && isNotEmpty(body) && isNotEmpty(radio) && isNotEmpty(radio1)){
$.ajax({
url: 'sendEmail.php',
method: 'POST',
dataType: 'json',
data:{
name: name.val(),
prenom: prenom.val(),
email: email.val(),
body: body.val(),
radio: radio.val(),
radio1: radio1.val()
}, success: function(response){
$('#myForm')[0].reset();
$('.sent-notification').text ("Votre message à bien été envoyé.");
}
});
}
}
function isNotEmpty(caller){
if(caller.val() == ""){
caller.css('border','1px solid red');
return false;
}
else
{
caller.css('border','');
return true;
}
}
</script>
<?php
use PHPMailer\PHPMailer\PHPMailer;
if(isset($_POST['name']) && isset($_POST['prenom']) && isset($_POST['email']) && isset($_POST['radio']) && isset($_POST['radio1'])){
$name = $_POST['name'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$body = $_POST['body'];
$radio = $_POST['radio'];
$radio1 = $_POST['radio1'];
require_once "PHPMailer/PHPMailer.php";
require_once "PHPMailer/SMTP.php";
require_once "PHPMailer/Exception.php";
$mail = new PHPMailer();
//smtp settings
$mail->isSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "maildenvoie";
$mail->Password = "mdp";
$mail->Port = 465;
$mail->SMTPSecure = "ssl";
// email settings
$mail->isHTML(true);
$mail->setFrom ($email, $name , $prenom);
$mail->addAddress("maildereception");
$mail->Body = ("Nom : $name. <br/><br/> Prénom : $prenom. <br/><br/> Adresse Mail : $email. <br/><br/> seriez vous à la soirée ? : $radio. Corps du message : $body.");
if($mail->send()){
$status = "success";
$response = "Votre email a bien été envoyé";
}
else
{
$status = "failed";
$response = "Something is wrong: <br>" . $mail->ErrorInfo;
}
exit(json_encode(array("status" => $status, "response" => $response)));
}
?>
Je ne vois pas ou vérifier et pour moi il est coché partout. Quelques chose m'échape surement et je ne vois pas quoi
normalement en js tu devrais vérifier qui est checké
https://www.w3schools.com/jsref/prop_radio_checked.asp
le 1er input est checké. Il n'y a que la valeur Oui qui est checker.
Mais je ne sais pas comment recevoir soit la réponse oui soit la réponse non en fonction de ce que l'utilisateur va cocher. J'arrive à tout recevoir sauf ça
normalement en js tu devrais vérifier qui est checké
https://www.w3schools.com/jsref/prop_radio_checked.asp