提交多个表单后重定向

时间:2013-01-18 10:51:58

标签: javascript jquery

有一个提交按钮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页面时,会出现同样的问题。

2 个答案:

答案 0 :(得分:4)

使用jQuery get()success function并跟踪是否发送了所有更新。因此,最后一次成功函数调用最终会重定向您的页面。

答案 1 :(得分: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

也许您可以在服务器端语言中使用此逻辑。