我在ajax中编写了以下代码,向后端发送了一个请求
$.ajax({
type: "POST",url: action,data: str,success: function(msg) {
//alert(msg);
if (msg == 'sent') {
alert("success");
$('#errormessage').html('<div class="alert alert-success">Email sent successfully.</div>');
$('.contactForm').find("input,textarea").val("");
}else if (msg == 'saved') {
$("#sendmessage").removeclass("show");
$("#errormessage").addClass("show");
$('#errormessage').html('<div class="alert alert-warning">Email couldn\'t be sent but not too worry we got it in our database. We will get back to you.</div>');
$('.contactForm').find("input,textarea").val("");
}
else {
$("#sendmessage").removeclass("show");
$("#errormessage").addClass("show");
$('#errormessage').html(msg);
}
}
});
php代码
$to_email = $set['Email'];
$headers = "From: ". $email;
//check if the email address is invalid $secure_check
$secure_check = sanitize_my_email($email);
if ($secure_check == false) {
echo "Invalid input";
} else { //send email
$query = mysqli_query($mysqli,"INSERT INTO emails(name,email,subject,message)VALUES('$name','$email','$sub','$msg')");
$mail = mail($to_email,$sub,$msg,$headers);
if($query and $mail){
echo 'sent';
}else if($query and !$mail){
echo 'saved';
}else{
echo $mysqli->error;
}
}
如果我发送电子邮件,则插入成功执行。我面临的问题是ajax无法打印正确的消息。它只执行显示已发送
的其他部分这部分代码不正确:
if (msg == 'sent') {
alert("success");
$('#errormessage').html('<div class="alert alert-success">Email sent successfully.
</div>');
$('.contactForm').find("input,textarea").val("");
}
相反,它仅显示已发送消息
else {
$("#sendmessage").removeclass("show");
$("#errormessage").addClass("show");
$('#errormessage').html(msg);
}