2016-09-15 80 views
0

(對不起,我的英語它不是我的母語)AJAX/PHP提交表單重定向,但執行send.php

簡單的問題, 我可以執行PHP文件來處理表格數據(包括文件),但重定向用戶而無需等待我的send.php文件的響應?

在我的php程序中有很多文件上傳,這意味着很多等待時間才能完成。我不希望用戶等待那麼久...

此刻我使用ajax來防止用戶重定向到send.php,這使得php執行,但用戶仍然在等待,直到「成功」函數調用後文件上傳和PHP完成,這也意味着用戶永遠等待...成功之前重定向功能,防止PHP完成。

我想要的是第二個用戶點擊提交,在後臺啓動send.php並將用戶重定向到另一個頁面,甚至沒有等待來自send.php文件的響應。

在我的php我檢查錯誤和處理,所以用戶甚至不需要知道任何錯誤。

(順便說一句一切工作只是不愉快的procces)

我的ajax:

$(document).on('submit', '#myForm', function(e) { 
       e.preventDefault(); 
       $.ajax({    
        url: $('#myForm').prop('action'), 
        type: $(this).attr('method'), 
        data: new FormData($('#myForm')[0]), 
        contentType: false, 
        processData: false, 
        success: function(data) { 
         alert('Form submitted'); 
         window.location = "http://www.somesite.com/"; 
        }, 
        error: function() { 
         // The request failed - So something here 
         alert('Form NOT submitted'); //display an alert whether the form is 
         console.log('form not submited ERROR'); 
        } 
       }); 
      }); 

回答

0

必須等到該文件被上傳。 上傳完成後,您可以啓動後臺進程(線程),例如,如果您必須操作上傳。 但是PHP的線程處理是不可能的。

+0

thnx您的評論。所以沒有辦法重定向,執行php而不等待響應? –

+0

您可以運行後臺進程,例如:[link](https://nsaunders.wordpress.com/2007/01/12/running-a-background-process-in-php/) 但是,如果您正在上傳文件你必須等到文件上傳到服務器,因爲如果你在上傳完成之前重定向,上傳將會被再次中斷 – ghovat

+0

thanx @ghovat –