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 に答える