2013-01-18 137 views
0

有一個提交按鈕serializes某些形式並將其相應地提交給服務器上的不同處理程序。數據發送完畢後,我想重定向到另一個頁面,用戶可以在其中看到結果的概述。我怎麼能這樣做?因爲頁面沒有足夠的時間提交數據(或者看起來如此),所以立即重定向不起作用。提交多個表單後重定向

下失敗:

$(document).ready(function(){ 
    $('#submit_all_button').submit(function(){ 
     var querystring = $('#q1').serialize(); 

     $.get('/change_q1', querystring); 

     var querystring = $('#q2').serialize(); 
     $.get('/change_q2', querystring); 

     var querystring = $('#q3').serialize(); 
     $.get('/change_q3', querystring); 

     window.location.href = "/main"; 
     return false; 
    }); 
}); 

同樣的問題出現時,提交的行動是重定向到/main頁。

回答

4

使用jQuery get()success function並跟蹤是否發送了所有更新。所以最後的成功函數調用最終重定向您的頁面。

0

我在PHP中對方的回答是有趣:運行作爲後臺作業(其它答案是最好的方式,但如果由於某種原因,你不能使用它):

set_time_limit(900); 
ignore_user_abort(true); 
header("Connection: close"); 
header("Content-Length: " . mb_strlen('ok')); 
echo 'ok'; 
flush(); 
// Your code follows here 

也許你可以在你的服務器端語言中使用這個邏輯。