我正在尝试使用ajax提交表单。
没有ajax,表单操作'send.php'工作正常,它会发送一封包含表单数据的电子邮件(包括文件等)
但我希望它能够在不重定向到php页面的情况下这样做, 所以我尝试使用ajax但是php没有被执行(我认为),它应该发送一封电子邮件并且不发送电子邮件(提醒 - 没有ajax它工作正常)。
ajax警告“表单已提交”(成功)但邮件未发送且php文件中的echo / alert未显示...
HTML表单:
<form method="post" action="send.php" enctype="multipart/form-data"id="myForm" target="_blank">
AJAX:
$(document).on('submit', '#myForm', function(e) {
e.preventDefault();
$.ajax({
url: $('#myForm').prop('action'),
type: $(this).attr('method'),
data: $('#myForm').serialize(),
beforeSend: function() {
$('#gif').css('visibility', 'visible');
},
success: function(data) {
$('#gif').css('visibility', 'hidden');
alert('Form submitted');
},
error: function() {
// The request failed - So something here
alert('Form NOT submitted'); //display an alert whether the form is
}
});
});
编辑: 找到问题的根源,我的ajax不完整我需要使用FormData!
我找不到如何使用它来表示我的表单中的所有文件,有人可以为正确的ajax显示一个示例吗?
答案 0 :(得分:0)
在您的JavaScript中创建一个变量,如
var myData = $('#form_ID').serialize();
然后在进行ajax调用时使用
$.ajax({
url: URL_HERE,
method: "POST",
data: myData,
success: function (results) {
它将提交表单数据,简单就是。