0

有一个提交按钮,可以将一些表单序列化并相应地提交给服务器上的不同处理程序。发送数据后,我想重定向到另一个页面,用户可以在其中看到结果的概述。我怎么能这样做?立即重定向不起作用,因为页面没有足够的时间提交数据(或者看起来如此)。

以下失败:

$(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

2 回答 2

4

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

于 2013-01-18T10:58:52.487 回答
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

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

于 2013-01-18T11:27:39.770 回答