我知道有很多问题,但我不能让它发挥作用。
我的HTML(test.htm)只有这段代码
<?php
$var = 'foo';
?>
<script type="text/javascript" language="javascript">
var val = "<?=$var?>";
alert(val);
</script>
但是当我用浏览器打开文件时,val的值是"<?=$var?>"
而不是'foo'
我怎样才能让它发挥作用?
答案 0 :(得分:7)
除非你有一些配置允许它,.htm
文件不会执行PHP代码,你将不得不使用.php
文件。
如果您在浏览器中查看HTML页面源代码,您可能会看到所有PHP代码。
唯一的另一种解释是,短标记<? ?>
未启用,您必须使用左<?php echo $var; ?>
答案 1 :(得分:5)
但是当我用浏览器打开文件时,val的值是“”而不是'foo'
听起来你有shorttags disabled(并使用PHP&lt; 5.4.0)。尝试
var val = "<?php echo $var ?>";
编辑:并注意CM Kanode对该问题的评论:如果它是.htm
文件,则可能是您的服务器没有通过PHP运行它(这需要特殊的配置,可能不是一个好主意)。 (您是通过http://
URL打开的,对吗?不在本地打开文件?因为除非涉及PHP服务器,否则无法处理PHP标记。)
更好的是,让json_encode
确保价值是引用属性的,例如:
var val = <?php echo json_encode($var) ?>;
答案 2 :(得分:1)
也许您没有启用短标签,请尝试
你可能也想留意字符串和东西的转义,所以如果你有一些比字符串更复杂的东西,你可以使用JSON
<?php $var = array( 'stuff' => 'things' );?>
<?php echo json_encode($var);?>
答案 3 :(得分:1)
你的帖子说你的文件扩展名是.htm。您是否将Web服务器设置为以PHP格式解析.htm文件?如果您的服务器只解析.php文件,请重命名您的文件并重试,因为这可以解释为什么没有处理。如果它被设置为解析.htm文件,那么T.J.克劳德的答案是最有可能的问题。
答案 4 :(得分:0)
尝试:
var val = "<?php echo $var; ?>";