2013-01-18 82 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 

也许你可以在你的服务器端语言中使用这个逻辑。