2013-02-18 52 views
-1

JS函數需要一個由PHP生成的變量。 .js文件不能解釋<?php ?>字符串,所以我必須從.html代碼中傳遞它。從php傳遞一個值給javascript

是的,但從HTML運行JS代碼被認爲是不好的做法(就像style元素)。那麼該怎麼辦?

+2

做你的建議:從HTML運行JS代碼 – bozdoz 2013-02-18 22:11:27

+0

我想你也可以配置apache來讀取js中的php代碼文件,作爲替代。 – bozdoz 2013-02-18 22:11:54

+0

製作一個全局命名空間和ech一個'json_encode'd對象與你需要的數據。 JSON編碼的字符串是有效的JS對象文字,所以你甚至不需要解析它。 – 2013-02-18 22:12:23

回答

1

你可以使用echo做這樣的事情:

<? echo('<script type="text/javascript">var hello="world"</script>'); 
1

有幾個選項。首先,你可以建立你的第一個例子。

<?php 

$myVariable = array('key' => 'value', 'anotherKey' => 10); 

?> 

// PHP variable output in javascript's object syntax 
var phpData = <?php echo json_encode($myVariable); ?>; 

// value 
console.log(phpData.key); 
// 10 
console.log(phpData.anotherKey); 

另一種選擇是對PHP腳本使用Ajax請求來檢索數據。根據你的問題,這個選項很可能不會有用,因爲你有頁面加載時的數據。

1

的.js文件不能解釋<?php ?>

所以給的文件擴展名.php。 (請確保您重寫PHP的默認Content-Type的輸出與header()通話。

但是從HTML運行JS代碼被認爲是不好的做法(就像樣式元素)。

這是因爲內聯JS是壞如果這個文件是動態生成的,那麼你可能無法清晰地緩存它。