2

これについては多くの質問があることは知っていますが、私はそれを機能させることができません。

私のHTML(test.htm)にはこのコードしかありません

<?php
$var = 'foo';
?>
<script type="text/javascript" language="javascript">
var val = "<?=$var?>";
alert(val);
</script>

しかし、ブラウザでファイルを開くと、valの値は"<?=$var?>" 'foo'ではなくです

どうすればそれを機能させることができますか?

4

5 に答える 5

6

それを許可するための構成がない限り、.htmファイルはPHPコードを実行しないため、.phpファイルを使用する必要があります。

ブラウザでHTMLページのソースを見ると、おそらくすべてのPHPコードが表示されます。

他の唯一の説明は、短いタグ<? ?>が有効になっていないということです。使用する必要があります
<?php echo $var; ?>

于 2012-05-14T11:02:39.093 に答える
4

しかし、ブラウザでファイルを開くと、valの値は「foo」ではなく「」です。

ショートタグが無効になっているようです(PHP <5.4.0を使用しています)。試す

var val = "<?php echo $var ?>";

編集:そして、質問に対するCM Kanodeのコメントに注意してください:それが.htmファイルの場合、サーバーがPHPを介してファイルを実行していない可能性があります(特別な構成が必要であり、おそらく良い考えではありません)。(これはURL経由http://で開いていますよね?ファイルをローカルで開かないのですか?PHPサーバーが関与しない限り、PHPタグを処理できないためです。)


そしてさらに良いjson_encodeことに、値があなたのために引用されたプロパティなどであることを確認しましょう:

var val = <?php echo json_encode($var) ?>;
于 2012-05-14T11:02:17.810 に答える
1

ショートタグが有効になっていない可能性があります。試してみてください

文字列などのエスケープにも注意する必要がある場合があるため、文字列よりも複雑なものがある場合は、JSONを使用できます。

<?php $var = array( 'stuff' => 'things' );?>

<?php echo json_encode($var);?>
于 2012-05-14T11:04:10.653 に答える
1

あなたの投稿はあなたのファイル拡張子が.htmであると言っています。.htmファイルをPHPとして解析するようにWebサーバーを設定していますか?サーバーが.phpファイルのみを解析している場合は、ファイルの名前を変更して再試行してください。これにより、が処理されない理由が説明されます。.htmファイルを解析するように設定されている場合、TJクラウダーの答えが最も可能性の高い問題です。

于 2012-05-14T11:04:23.657 に答える
0

試す:

var val = "<?php echo $var; ?>"; 
于 2012-05-14T11:02:30.220 に答える