2012-05-14 67 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.克勞德的回答是最可能的問題。