1

ボタンがあり、クリックすると(html onclick)別のページにリダイレクトされます。JavaScript には、このボタンがクリックされたときにデータベース テーブルに新しい値を書き込む関数があります。私の問題は、データがデータベースに書き込まれる前にリダイレクトが行われるため、新しいページに古い値がまだ残っていることです。これらの手順を逆にする簡単な方法 (リダイレクト、データベースへの書き込み) はありますか? アドバイスありがとうございます

4

4 に答える 4

1

リダイレクトを ajax 呼び出しのコールバックに移動するだけです。

<a href="#" id="savedata">Save data</a>
<script type="text/javascript">
    $(document).ready(function() {
        $("#savedata").click(function() {
            $.post('/savemydata/', { mydata: 'data' }, function(data) {
                window.location.href = '/newpage/'
            });
            return false;
        });
    });
</script>

ボタンが実際にフォームを送信する場合は、代わりにボタンを非表示にして、投稿後に次のように追加するだけでボタンをトリガーすることができます。

$("#buttonID").trigger('click');
于 2012-04-11T14:01:37.600 に答える
0

新しいページにリダイレクトするコードを ajax 保存要求のコールバックに移動します。

このようなもの:

$.post('/savemydata/', { my: 'data' }, function(data) {
    //the Ajax post has been completed successfully, so now we redirect
    window.location.href = '/newpage/'
});
于 2012-04-11T13:47:14.753 に答える
0

ajax を使用してデータを書き込み、次に ajax のコールバックでリダイレクトをスローします。これにより、情報がデータベースに書き込まれるまでリダイレクトが発生しなくなります。コードの一部を確認して、より良い回答を得ることができます。また、ajax を初めて使用する場合は、jQuery を使用することをお勧めします。

于 2012-04-11T13:46:01.260 に答える
0

それは、データベースへの書き込み方法によって異なります。ただし、新しいページをロードするときにサーバーにデータを転送する通常の推奨される方法は、URL パラメータを使用することです。次のようなものを使用する場合

<form action="/next.php" method="POST">
 <input type="hidden" name="data" value="values" />
 <button type="submit" value="Next Page" />
</form>

また

<a href="/next.php?data=values">Next Page</a>
// also simply usable with
window.location = "/next.php?data=values";

あなたはそれを確信することができます

  1. データがサーバーに到達し、
  2. 前に処理 (データベースへの書き込み) できる
  3. 要求されたページが返されます。

クッキーを使用することもできます。データ値を に書き込むだけで、新しいページを要求するのと同じ要求document.cookieでサーバーに転送されます。

于 2012-04-11T14:01:23.193 に答える