ボタンがクリックされると(html onclick)、別のページにリダイレクトされます。 javascriptには、このボタンがクリックされたときにデータベーステーブルに新しい値を書き込む関数があります。私の問題は:リダイレクトは、データがデータベースに書き込まれる前に行われるため、新しいページにはまだ古い値が残っています。これらの手順を逆にする簡単な方法はありますか(リダイレクト、データベースへの書き込み)?アドバイスありがとうリダイレクトする前にデータベースに書き込む
答えて
ajaxを使用してデータを書き込んだ後、ajaxのコールバックでリダイレクトをスローします。これにより、情報がデータベースに書き込まれるまでリダイレクトが行われなくなります。より良い答えを出すためにあなたのコードの一部を見るのに役立ちます。また、これは、あなたがajaxを初めて使う人にとってはjQueryで最もうまくいくでしょう。
新しいページにリダイレクトされるコードを、ajax保存要求のコールバックに移動します。このような
何か:
$.post('/savemydata/', { my: 'data' }, function(data) {
//the Ajax post has been completed successfully, so now we redirect
window.location.href = '/newpage/'
});
「ボタン」がリダイレクトの原因となる「」であるという問題が引き続き発生する可能性があります。 – m90
どこにもありません。私たちはそれが何であるか分かりません。そうでなければ良い答えに役立つだけかもしれません。 – m90
データベースに書き込む方法によって異なります。しかし、新しいページを読み込むときにサーバーにデータを転送する通常の方法と推奨される方法は、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";
のようなものを使用する場合は、
- データがサーバに到達したことを確認することができます
- 要求されたページが返されます。
また、Cookieを使用することもできます。データ値をdocument.cookie
に書き込むだけで、サーバーにはと同じリクエストであるが転送され、新しいページが尋ねられます。
だけ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');
ありがとうございます! –
- 1. データベース内からデータベースに書き込む
- 2. applicationDidEnterBackground:データベースに書き込む時間
- 3. idiorm/paris - データベースにnullを書き込む
- 4. データベースに書き込む際の問題
- 5. データベースにビット値を書き込む
- 6. GeoDataFrameをSQLデータベースに書き込む
- 7. Android Firebase - データベースにデータを書き込む
- 8. SQLデータベースに書き込むPHPスクリプト
- 9. リモートVPSデータベースにデータを書き込む
- 10. SQLデータベースにフォームデータを書き込む
- 11. アンドロイドアプリでデータベースに書き込む
- 12. PHPデータベースにデータを書き込む
- 13. php mysql;データベースにデータを書き込む
- 14. mysqlデータベースにデータフレームを書き込む
- 15. データベースにデータを書き込む
- 16. データベースに書き込む前にトランザクションログをステージングとして使用する理由
- 17. データベースに書き込む前にデータを消去するより良い方法
- 18. Django - データベースに書き込む前に一時/プレビューモデルを保存する場所?
- 19. 書き込む前に空のGoogleワークシート
- 20. 書き直す前にリダイレクト
- 21. データベースに書き込んだ後にリダイレクトできない(OpenCart)
- 22. Django FileFieldアップデートはディスクに書き込むがデータベースには書き込まない
- 23. ロックアウトを避けるためにファイルに書き込む前にバッファに書き込む
- 24. ディレクトリに画像をアップロードし、画像の名前をデータベースに書き込む
- 25. オブジェクトをマージするときに.htaccessにURLリダイレクトを書き込む
- 26. 書き込みキャッシュポリシーに書き込み/フェッチを書き込む
- 27. Elmを読み込んでSQLデータベースに書き込む
- 28. AndroidのSQLiteデータベースに書き込むとアプリケーションがクラッシュする
- 29. NavenがRavenDBデータベースに書き込むことができます
- 30. BufferedWriter:閉じられる前にファイルに書き込む
をあなたのボタン(すなわち、おそらく 'event.preventDefault()'や 'リターンfalse'を)のデフォルトの動作を防ぐことができ、その後、あなたのAJAX呼び出しのコールバック関数にリダイレクトをトリガー。 '$ .ajax'を使っていますか? – m90