//フォームに渡された値を非表示にする
$orderno= '<script>document.write("333");</script>';
if($orderno=="333")
{
echo 'ok'.$orderno;
else{
echo 'no2'; }
上記のコードでは、echo $orderno の値を php 変数に渡します。 333 ですが、なぜ以下で実行される if ステートメントでは、常に else の内容が実行されるのですか。値が等しくないのはなぜですか。 ?緊急のお願いです! !皆さんありがとうございます
ディスカッションへの返信(解決策)
php は前で実行され、js は後ろで実行されます
php の実行が終了した後、js が実行を開始します
したがって、http セッション中は次のようになります:
js canデータを php に送信し、php から返されたデータを受け入れます
逆は機能しません
しかし、echo は document.write("333") を出力できます。これをどう説明しますか。ありがとう
もちろん、これはelse 分岐を実行します。 。 。 js 値を php 変数に渡す必要がある場合。 。 ajax または dwr を使用できますか?
しかし、echo は document.write("333") を出力できます。ありがとう
echo $orderno;これは、クライアント スクリプトが 333 をすぐに出力するためです。 echo によって直接出力されるわけではありません。
-----------------
この質問では、php がサーバー側で実行されることを理解する必要があります。 write はクライアント側で実行され、シーケンスがあります
$orderno= '<script>document.write("333");</script>';
echo gettype($orderno) ; $orderno の現在の値は文字列 string==333 ですか? 確かにそうではありません。したがって、else の内容は常に実行されます
var_dump($orderno); 333 ではありません
$orderno= '<script>document.write("333");</ script>'; <br> これだけの印刷では何か問題があるはずです <p class="sougouAnswer"> </p> <p class="sougouAnswer"> <br> <br> しかし、echo は印刷できますout document.write("333")、これを説明する方法、ありがとう</p> <p class="sougouAnswer"> </p>
<p class="yy"> </p>
<p class="yy"> echo $orderno; サーバー側で文字列の行を解析して出力すると、次のようになります。 ' <script>document .write("333");</script>'
しかし、333 が表示されます。これは、クライアント スクリプトが 333 をすぐに出力するためです。この 333 は、echo によって直接出力された値ではありません
-------- ---------
この質問では、php がサーバー側で実行され、script -> document.write が実行され、クライアントが次の順序で実行されることを理解する必要があります
$orderno= '<script> document.write("333");</script>';
echo gettype($orderno) ; //string
$orderno の現在の値は String string==333 ではないので、 else は常に実行されます
分かりました、ありがとうございます! !