2013-04-09 53 views
2
<?php 
header("Content-type: application/javascript"); 
?> 
<!DOCTYPE HTML> 
<html> 
<head> 
</head> 
<body> 
<?php 

    $variable=10; 
?> 
<script> 

    var myVar = "<?php echo $variable; ?>"; 
    alert(myVar); 

</script> 
</body> 
</html> 

這是我的源代碼,它不起作用。我關心的是將php變量轉換爲javascript變量..該警報將整行顯示爲字符串 而不是打印值...已嘗試使用json函數。沒有使用。我該怎麼做?將php變量轉換爲javascript.Not working

回答

5

你絕對不應該告訴它接收的JavaScript時,它其實是在接收HTML瀏覽器:

header("Content-type: text/html"); 

的HTML包含<script>標籤,它本身包含JavaScript是完全不同的東西的事實。

此外,對在JavaScript注入PHP變量更好的辦法是

var myVar = <?php echo json_encode($variable); ?>; 

注意周圍的值暫無報價 - json_encode自動報價要求。關於注入變量的一些細節問題使得這個和你的原始方法都不是無懈可擊的,但json_encode作爲默認選擇要好得多。

+0

在HTML5中,type屬性不是必須的。 js被假設爲 – 2013-04-09 18:23:40

+0

對於簡單的數字,json_encode不是必需的... – Bart 2013-04-09 18:25:18

+0

@MarcosSavoury:感謝提示,編輯了這部分內容。 – Jon 2013-04-09 18:25:23

6

刪除此行:

header("Content-type: application/javascript"); 

這告訴瀏覽器輸出此頁面爲文本(即瀏覽器將不渲染它),JavaScript的應加載到HTML文件。

+0

或者至少將它改爲'text/html'。 – 2013-04-09 18:22:57

0

我猜你的文件有.php擴展名。在這種情況下,一個簡單的<script>var myVar=<?php print $variable; ?></script>就可以做到了,不需要用引號或雙引號括起來:P