2012-05-14 63 views
1

我知道这方面有很多问题,但我无法完成工作。从javaScript中读取php变量?

我的HTML(TEST.HTM)只有这个代码

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

但是当我打开该文件与浏览器val的值是"<?=$var?>"而不是“富”

我怎样才能让这行得通?!!!

谢谢, 卡洛斯。

+1

您的PHP环境是否支持短标签?试试'<?php echo $ var; ?''只是为了测试。 –

+1

您的测试文件是test.htm?不是PHP? –

+0

@CMKanode:我读过*右边*过去那个,很好。 –

回答

7

除非你有一些配置,以允许它,.htm文件不会执行PHP代码,您将不得不使用.php文件。

如果您在浏览器中查看HTML页面源代码,您可能会看到所有的PHP代码。

其他唯一的解释是,短标签未启用<? ?>,你将不得不使用
<?php echo $var; ?>

+3

斑点... –

5

但是当我打开该文件与浏览器val的值是“”,而不是“富”

听起来像是你有shorttags disabled(和使用PHP < 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) ?>; 
0

尝试:

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

也许你没有启用shorttags,尝试

您可能还需要看出来的字符串和东西逃跑,所以如果你有什么比一个字符串更复杂,你可以使用JSON

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

<?php echo json_encode($var);?> 
1

你的帖子里说,您的文件EXTENS离子是.htm。你有你的Web服务器设置为解析.htm文件为PHP?如果您的服务器仅解析.php文件,请重命名您的文件并重试,因为这可以解释为什么不处理该文件。如果它被设置为解析.htm文件,那么T.J.克劳德的回答是最可能的问题。