2016-09-14 139 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

我狡猾地解決它,但無論如何。順便說一句,你的解決方案適用於所有的輸入,但不包括文件包括,在我的情況下,注意它的時間工作。 –