所以我从一个ajax请求提交这个表单,它的工作正常只是提交后没有响应回调
这是我的代码:
//index.html
<form method="POST" id="myForm" action="sendmail.php">
<input type="text" name="sender_email" placeholder="Email" required="">
<textarea placeholder="Message" name="message" required=""></textarea>
<input type="submit" name="send" value="SEND">
</form>
$(document).ready(function() {
$("#myForm").on('submit', function(event) {
event.preventDefault();
var formData = $(this).serialize();
$.ajax({
type: 'POST',
url: 'sendmail.php',
dataType: "json",
data: formData,
success: function(response) {
alert("Mail sent"); // no callback here
},
error: function(xhr, status, error) {
console.log(xhr);
}
});
});
});
我的php:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if(isset($_POST['message'])){
$to = 'support@mydomain.com';
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = "From: ".$_POST['sender_name']." <".$_POST['sender_email'].">\r\n"; $headers = "Reply-To: ".$_POST['sender_email']."\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subject, $message, $headers)) {
echo json_encode(["success" => true]);
} else {echo json_encode(['success'=>false]);
}
exit;
}
?>
任何人都可以指出这里有什么问题?
答案 0 :(得分:1)
您指的是$_POST['subject'], $_POST['sender_name'], $_POST['sender_name']
文件中的sendmail.php
,但未通过表单发送这些内容。这就是为什么php抛出警告并且你没有得到任何有效的ajax响应。