1

結果ページの読み込み中にユーザーが送信ボタンを押した後、ある種の進行状況インジケーターを表示したい検索ボックスがあります。私が見つけた最も簡単な方法は次のとおりです。

while ( $something == true ) {
  // Echo an extra dot, and flush the buffers
  // to ensure it gets displayed.
  echo ' .';
  flush();

  // Now sleep for 1 second and check again:
  sleep(1);
}

私が想像する $something は、単純に、ユーザーがまだ検索フォームを送信したかどうかです。問題は、ページの読み込みが既に完了しているため、上記の PHP コードがそれを認識できないことです。

ユーザーが検索フォームを送信した後にのみその PHP を実行するにはどうすればよいですか?

4

3 に答える 3

3

できません。そのためには JavaScript を使用する必要があります (サーバー側のコードと対話するために AJAX も使用する可能性があります)。

于 2013-04-04T18:00:43.347 に答える
1

PHP はサーバー側の言語なので、ブラウザで何が起こっているのかを知ることはできません。ブラウザからのリクエストにのみ応答します。あなたが求めていると私が思うものを達成するには2つの方法があります。

ajax の方法:
なんらかのライブ フィードバックを得るには、Javascript などのクライアント側言語が必要です。かなり理解しやすい JavaScript ライブラリであるjQueryをご覧になることをお勧めします。$.ajaxより具体的には、おそらくメソッドと.submitイベントが必要になります

PHP の方法:
検索フォームがある同じ php ページにフォームを送信し、フォーム変数が存在するかどうかを確認して、フォームが送信されたかどうかを検出することもできます。このようなもの:

if (array_key_exists('search', $_REQUEST) {
 // the form has been submitted
}
else  {
 // the form is not yet submitted
}

フォームの検索ボックスの名前が「検索」であると仮定しています

于 2013-04-04T18:05:55.027 に答える