提交多个表单后重定向

Redirect after submitting multiple forms

本文关键字:重定向 表单 提交      更新时间:2023-09-26

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

以下错误:

$(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页面时,也会出现同样的问题。

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

我在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

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