我知道有很多关于这个问题的疑问,但我无法让它工作。
我的HTML文件(test.htm)只有这段代码
<?php
$var = 'foo';
?>
<script type="text/javascript" language="javascript">
var val = "<?=$var?>";
alert(val);
</script>
但是当我用浏览器打开文件时,val的值为"<?=$var?>"
而不是'foo'
我该如何使其正常工作?
我知道有很多关于这个问题的疑问,但我无法让它工作。
我的HTML文件(test.htm)只有这段代码
<?php
$var = 'foo';
?>
<script type="text/javascript" language="javascript">
var val = "<?=$var?>";
alert(val);
</script>
但是当我用浏览器打开文件时,val的值为"<?=$var?>"
而不是'foo'
我该如何使其正常工作?
.htm
文件不会执行PHP代码,您需要使用.php
文件。<? ?>
没有启用,您需要使用<?php echo $var; ?>
。var val = "<?php echo $var ?>";
编辑:请注意CM Kanode在问题上的评论:如果是.htm
文件,很可能您的服务器根本没有运行PHP(这需要特殊配置,而且可能不是一个好主意)。 (您是通过http://
URL打开此文件的吗?不是在本地打开文件吗?因为除非涉及PHP服务器,否则无法处理PHP标记。)
更好的是,让 json_encode
为您确保值被适当引用和格式化:
var val = <?php echo json_encode($var) ?>;
也许您没有启用短代码,请尝试
您可能还需要注意字符串的转义等问题,因此如果有比字符串更复杂的内容,可以使用JSON
<?php $var = array( 'stuff' => 'things' );?>
<?php echo json_encode($var);?>
尝试:
var val = "<?php echo $var; ?>";
<?php echo $var; ?>
进行测试。 - undefined