私は人々がフォーム上で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. PHP MySQLの値を更新してページにリダイレクトする
- 4. 新しいページのJqueryリダイレクト
- 5. PHPコードを実行した後に新しいページを読み込んでいますか?
- 6. Laravelフレームワークを実行しているサーバー上でPHPコードを更新します。
- 7. 別のaspxページにリダイレクトし、次のコードをバックグラウンドで実行します(.NET 4.5.2)
- 8. 新しいページに訪問者をリダイレクト
- 9. マイグレーションを分割して新しいコードを実行しない
- 10. PHP if文から新しいページにリダイレクト
- 11. URLパラメータとして配列を渡し、新しいページにリダイレクト
- 12. 削除して、PHPのページにリダイレクト
- 13. ASP.NET MVC AJAX新しいページにリダイレクト
- 14. 不足しているページから正しいウェブページにリダイレクトphp
- 15. ページ上にコードを実行しています[Actionscript]
- 16. アイコンをロードしてから新しいページにリダイレクト
- 17. データベースのデータを使用して新しいページにリダイレクトする
- 18. ビデオを再生してから新しいページにリダイレクト
- 19. neo4j-php-clientでトランザクションの後にphpコードを実行してからコミットアトミックを実行していますか?
- 20. フォームの提出とリダイレクトの後にPHPコードを実行
- 21. 親ページを表示せずに新しいページにリダイレクト
- 22. 選択肢に基づいて新しいWebページにリダイレクト
- 23. codeigniter PHPページが新しいコードで更新されていません
- 24. URLをリダイレクトしてそのページでスクリプトを実行
- 25. phpファイルにリンクしているD3コードがWebページのテキストとして実際のコードを出力します
- 26. JSF/Seam新しいページを検証してリダイレクト
- 27. phpフレームワークlaravelを使用してログインした後にページをリダイレクト
- 28. $ routeProvider - angular jsを使用して新しいページにリダイレクトしたい
- 29. コードを実行しているSystrayコードの実行
- 30. リダイレクトされたページのコンテンツを表示しないPHPリダイレクト
あなたが必要とするのはAjaxです。 – yoda
読み込みアニメーションを表示するのは、バックグラウンドで別のスレッドでデータを処理していて、完了するまで待つ必要がある場合のみです。通常のPOST /リダイレクト/ GETサイクルでは、これは非常に面倒であり、おそらく不要です。あなたは手術がそれほど長くかかりますか? – deceze
技術的に言えば、正しいことですが、「読み込み中」のアニメーションが表示されている限り、何かが起こっていることをユーザーが確認できるのは常に良いことです。 「データが正常に送信されました」というメッセージはおそらく「データを送信しています...」よりも現実的ですが、有益な効果は最後に同じです。 – pdinklag