-3

私のページには以下のコードがあります:

<script type="text/javascript">

    if (navigator.userAgent.indexOf('MSIE 8') != -1) {
        <?php $ie8 = 1; ?>
        alert(<?=$ie8?>);
    }

</script>

これで、ブラウザが IE8 の場合にのみ正しくアラートが出力されるようになりました。大丈夫です。

$ie8ただし、これを実行した後に値をテストすると、次のようになります。

var_dump($ie8);

私はいつもint(1)ブラウザがIE8かそうでないかという価値観に行き着きます。関数を実行する前に値をテストして、他の場所に設定されていないことを確認しましたが、期待どおりのNULL出力が得られました。

だから私の質問は、これが1javascriptステートメントに入っていないときにどのように設定されているのですか?

4

3 に答える 3

2

一方がサーバー側でもう一方がクライアント側である場合、Javascript と PHP を単一の言語として使用しようとしています。

PHP では、$ie8常に1. Javascriptはクライアントがページを表示するときにのみ実行され、PHPはサーバーがページを提供するときにレンダリングされるため、どのようなHTMLまたはJavascriptをスローしても問題ありません。

Javascript 関数に基づいて PHP で値を設定する場合は、AJAX を使用してクライアント側からサーバーに要求を送信し、そこで PHP がデータとやり取りできるようにする必要があります。クライアント/サーバー側の言語と AJAX に関する詳細情報を調べれば、すぐに始めることができます。

于 2013-03-31T14:32:28.763 に答える
1

そのファイルが PHP に送られるとき、JavaScript ロジックは気にしません。その php ie8 =1 は、「if」がJSではなくPHPでない限り、常に実行されます。

非番のパイロットが乗客として飛行機に座っているようなものです。彼の論理は勤務中のパイロットに影響を与えますか? いいえ。PHP が動作している場合、JavaScript はオフ デューティであり、PHP パイロットにとって重要ではありません。

于 2013-03-31T14:34:49.133 に答える