2016-09-14 61 views
-1

我想提交一个表单使用ajax。ajax表单提交时没有重定向剂量工作

没有AJAX,表单动作“send.php”做工精细,它发送一个电子邮件从表格数据(包括文件等)

但我想它不重定向到这样做在PHP页面, 所以我尝试使用Ajax,但PHP没有执行(我认为),它应该发送一封电子邮件,并不发送电子邮件(提醒 - 没有AJAX它工作正常)。

阿贾克斯警报“表单提交”(成功),但不发送邮件,并在PHP文件的回声/警报不显示出来......

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的例子吗?

+1

请显示您的send.php代码 –

+0

告诉我们您的代码,它是用send.php文件编写的 – Bhavin

+0

服务器的错误是什么?查看控制台中的网络请求并查看返回的内容。 – epascarello

回答

0

在JavaScript中创建一个变量像

var myData = $('#form_ID').serialize(); 

,然后进行Ajax调用使用时

$.ajax({ 
     url: URL_HERE, 
     method: "POST", 
     data: myData, 
     success: function (results) { 

将提交表单数据,简单就是。

+0

我狡猾地解决它,但无论如何。顺便说一句,你的解决方案适用于所有的输入,但不包括文件包括,在我的情况下,注意它的时间工作。 –