私は人々がフォーム上でsubmitをクリックして、あるデータをチェックして新しいページ全体にリダイレクトするページをロードできるようにします。リダイレクトにはheader()を使うことができますが、ヘッダーは何もロードできません。ページ間の読み込みアニメーションが必要です。これを達成する最良の方法は何ですか? PHPでリダイレクトするにはPHPコードを実行して新しいページにリダイレクト
答えて
を使用しています。
このページは、あなたのフォームが送信したデータを処理し、素敵な「読み込み中の」テキストとアニメーションを表示し、しばらくすると別のページにリダイレクトします。これは、HTMLのメタを使用して行うことができる
はあなた<head>
になった、をリフレッシュし、次のようになります。
<meta http-equiv="refresh" content="3;url=anotherpage.php">
content
属性がそこに面白いビットです。 3
は3秒を意味し、anotherpage.php
は3秒後にリダイレクトされるサイトです。
リフレッシュする前にコードを処理しますか? – shinjuo
あなたのPHPコードは、クライアント側でリダイレクトされる前にサーバ側で実行されます。 – pdinklag
サーバーとスクリプトによって異なります。データの処理を開始する前に、スクリプトがHTMLを出力するように注意する必要があります。多くのサーバーでPHP出力がバッファリングされ、スクリプトが終了すると送信されます。結果は、処理がすでに完了している場合にユーザーに「処理中」ページが表示されることになります。適切な処理ページを取得するには、出力バッファをフラッシュし、 "ignore_user_abort"を使用して、ユーザーがリダイレクトされたときにスクリプトが終了しないようにする必要があります。警告:PHP出力バッファをフラッシュしても、サーバ上に他のバッファが存在する可能性があります。 –
、私は、フォームが別のページ(action="process.php"
のようなもの)にそのデータを提出するだろうheader("Location: $url");
header( 'Location:'。$ url); – yoda
代わりに、私は提出するページに最小限のJavascript効果を提案したいと思います。 onsubmit
送信ボタンを無効にして、その近くにスピナーなどのアニメーションを表示します。「処理中...」メッセージを追加することもできます。ページは通常のPOST /リダイレクト/ GETサイクルを経ることができますが、中間ページを通過するよりも速く、ユーザーは何かが起こっていると感じています。
ヘッダはすでにこれは私が$ newLocationにブラウザを送信するために使用するPHP/JavaScriptコードで、その後送られてきた場合:
echo '<script language="javascript" type="text/javascript" >', PHP_EOL;
echo '<!--', PHP_EOL;
echo ' window.top.location.href = \'', $newLocation, '\'', PHP_EOL;
echo '// -->', PHP_EOL;
echo '</script>', PHP_EOL;
私の場合、私はより多くのcontrolablyエラー状況から回復するためにそれを使用していますヘッダーが既に送信された後。
- 1. Javascriptでページの更新を保持し、PHPコードを実行しますか?
- 2. ASP.Netを使用して404ページから新しいページにリダイレクト
- 3. 新しいページに訪問者をリダイレクト
- 4. ページ上にコードを実行しています[Actionscript]
- 5. 親ページを表示せずに新しいページにリダイレクト
- 6. JSF/Seam新しいページを検証してリダイレクト
- 7. phpファイルにリンクしているD3コードがWebページのテキストとして実際のコードを出力します
- 8. phpコードから-jarファイルを実行しています
- 9. 更新したページを読み込んだ後にJavascriptコードを実行
- 10. ASP.NETはページを新しいURLにリダイレクトします
- 11. 新しいドメインの同じページにすべてのページをリダイレクトする方法
- 12. htaccess:古いドメインとすべてのページを新しいドメインにリダイレクトします
- 13. スクリプトの実行後にPHPをリダイレクト
- 14. jqueryのアップロードが完了した後に新しいページにリダイレクト
- 15. PHP:301 GET変数を保持しているページをリダイレクト
- 16. 文字列にphpコードを指定して実行する
- 17. Symfony2 + FOSCommentBundle:新しいコメントを保存した後の新しいページのリダイレクト
- 18. ファイルのアップロードが完了したら、新しいページにリダイレクト
- 19. vBulletin新しいPHPコードを作成して新しいユーザを挿入する
- 20. ユーザーコントロールなしの自動実行PHPコード
- 21. .aspxが新しいURLに終わるページをリダイレクト
- 22. すべてのエラーをキャッチし、PHPでページにリダイレクト
- 23. PHPを使用して別のページにリダイレクトする方法
- 24. htaccessリダイレクトリファラー - 新しいページでリダイレクトを停止します
- 25. PHPstormを使用してブラウザでphpコードを実行する
- 26. フォームを送信してからPHPコードを実行する
- 27. ログイン後にユーザーが新しいページにリダイレクトされる理由
- 28. MySqlに入力し、値をリフレッシュし、PHPでページを更新せずに式を実行します。 AJAX?
- 29. asp.net-mvc基準に基づいて新しいページにリダイレクトする
- 30. ページを変更して新しいページに移動しない
あなたが必要とするのはAjaxです。 – yoda
読み込みアニメーションを表示するのは、バックグラウンドで別のスレッドでデータを処理していて、完了するまで待つ必要がある場合のみです。通常のPOST /リダイレクト/ GETサイクルでは、これは非常に面倒であり、おそらく不要です。あなたは手術がそれほど長くかかりますか? – deceze
技術的に言えば、正しいことですが、「読み込み中」のアニメーションが表示されている限り、何かが起こっていることをユーザーが確認できるのは常に良いことです。 「データが正常に送信されました」というメッセージはおそらく「データを送信しています...」よりも現実的ですが、有益な効果は最後に同じです。 – pdinklag