質問

ページの最後で何かが発生した場合は、それをクリアする必要があり、クライアントに提供する前にページ全体を再解析する必要があります。ページを更新するためにJavaScriptをエコーアウトしようとしましたが、ページをロードしてから再ロードすることになります...PHPエンジンに最初に戻って再ロードするように指示する方法があるかどうか疑問に思っていました-ページ全体を解析しますか?

ありがとう!

問題をもっとわかりやすく説明しようと思いますが、複雑で、私はコミュニケーションが苦手です。製品をリストするページでは、結果を絞り込むためのフィールドを選択するオプションをユーザーに提供しています。システムはこれを記憶しているので、選択し続ける必要はありません。金属の色などのカテゴリを絞り込んで、クリスタルの置物など金属の色が無関係なカテゴリに移動すると、選択した金属の色と一致するものがないため、結果は表示されません。カテゴリが異なれば、正しい製品を見つけるための要件も異なるため、データベースから製品を取得するためのクエリを生成することは非常に複雑です。したがって、クエリが生成されたら、mysql_num_rows() に対してテストし、結果がない場合はユーザーの選択をクリアして最初からやり直します。

役に立ちましたか?

解決

カテゴリが異なれば、正しい製品を見つけるための要件も異なるため、データベースから製品を取得するためのクエリを生成することは非常に複雑です。クエリが生成されたら、それをテストしたいと思います mysql_num_rows() 結果が得られない場合は、ユーザーの選択をクリアして最初からやり直します。

その場合は、結果を返す関数内にクエリを配置し、行数を確認し、それがゼロの場合はフィルターをクリアして、その関数をもう一度呼び出します。

他のヒント

あなたは少し曖昧ですが、単に出力の再解析について話しているのであれば、次を使用してそれを行うことができます 出力バッファリング.

何が問題なのか完全にはわかりませんが、HTML を作成する前に何を表示するかを決めて、最初から正しいものを送信することはできなかったのでしょうか。

出力バッファリング (ob_start と ob_clean) を、手元の機能を別のファイルに分離し、 eval() を実行することと組み合わせることで、うまくいくはずです。

ああ、最近の PHP バージョンには実際には 後藤 声明...ただし、それについて言及することは常に否定します。:-)

あなたは少しそれをやっていると思います。

ページを再解析するには、次を使用してユーザーを再度ページにリダイレクトする必要があります。

header('Location: thepagefile.php');

ただし、実際に新しいページを作成せずにファイルを再解析したい場合は、単にファイルを再度インクルードすることもできます。

pagefile.php を含める

しかし、おそらく同じ結果が得られるでしょう。実際にやりたい場合は 解析する ページの出力は次のようになります。

ob_start(); // this is at the very top of the code/page
// all the code goes here
$output = ob_get_clean();
eval($output); // WTF?

実際には意味がありませんが、お役に立てば幸いです。

あなたが解決しようとしている本当の問題が実際に何なのかを知りたいのです。

あなたは次のようなものを探していると思います:

<?php
ob_start(); //we start output buffering, this means nothing is send to the browser
//We do some code stuff
$time = microtime();
echo "Hai \n"; //Note taht mixing logic and output in real life
echo $time;  // is terribly practice
echo "\n bai"; //I do it here purely for the example
if(/*some condition */){
 $anErrorHappened = true;
}
if($anEroorHappened === true){
  //Load the output in a var if you need it
  //Otherwise don't
  $output = ob_get_clean();
  //Do other code stuff
  //I.E. send an error page
  include('errorPage.html');
}
else{
 ob_end_flush(); //Send everything the script has echo()'d, print()'ed and send to the browser in any other way (I.E. readfile(), header() etc.)
}
?>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top