2013-02-26 49 views
1

我想將一個php數組傳遞給javascript。我已經嘗試了幾個從這個網站上獲得的例子,但是我的其他代碼似乎沒有認出它們。我認爲問題在於數組的引號或格式。php數組中的引號到javascript數組

第一:var函數列表定義如下工作正常。

<script type="text/javascript"> 
    var functionlist = Array('1','2','3','4','5','6','7','8','9','10','11','12'); 
    //Rest of the code 
</script> 

第二:var functionlist定義如下工作正常。

<script type="text/javascript"> 
    var functionlist=Array("1","2","3","4","5","6","7","8","9","10","11","12"); 
    //Rest of the code 
</script> 

但下面的代碼無法正常工作,儘管呼應$ TransfArray呈現相當類似上面的東西。

<?php 
    for ($i = 0; $i <= 12; $i++) { 
     $OriginalArray[$i] = $i; 
    } 
    $TransfArray= "'" . implode("','", $OriginalArray) . "'"; 
?> 

<script type="text/javascript"> 
    var functionlist = Array(<? echo $TransfArray; ?>); 
    //Rest of the code 
</script> 

也不低於

<?php 
    for ($i = 0; $i <= 12; $i++) { 
     $OriginalArray[$i] = $i; 
    } 
    $Original_to_json = json_encode($OriginalArray); 
?> 

<script type="text/javascript"> 
    var functionlist = <?php echo $Original_to_json; ?>; 
    //Rest of the code 
</script> 

代碼有沒有人發現這個問題? Thnaks提前。

+0

請問你原來的PHP數組樣子,你會喜歡它在JavaScript看? json_encode真的應該做的很好。 – hank 2013-02-26 13:20:35

+0

第二個例子輸出到瀏覽器是什麼? – crush 2013-02-26 13:22:25

+0

這些PHP示例的輸出結果是什麼?即它與工作有什麼不同?理想情況下,您希望輸出爲:var functionlist = ['1','2','3','4','5','6','7','8','9', '10','11','12'];'如果你想在JavaScript中處理數字,不需要引號。 – Fenton 2013-02-26 13:22:41

回答

2

使用鑄造如下,

<?php 
for ($i = 0; $i <= 12; $i++) { 
$OriginalArray[]= (String)$i; 
} 
$Original_to_json=json_encode($OriginalArray); 
?> 

<script type="text/javascript"> 
var functionlist = <?php echo $Original_to_json; ?>; 
//Rest of the code 
</script> 
+0

爲什麼?他顯示沒有要求JavaScript數組的值是一個字符串而不是int的代碼。 – crush 2013-02-26 13:27:31

+0

@Crush user1726522幾乎到達了他的目標,我猜他可能需要一些文本作爲標識符。 – 2013-02-26 13:35:44

+0

他可能會將其視爲字符串,但在幾乎所有使用它的實例中,Javascript都應自動將其轉換爲字符串。不幸的是,我們不知道OP在陣列中做了什麼。 – crush 2013-02-26 13:42:25

-1

試試這個:

<script type="text/javascript"> 
var functionlist = <?php echo json_encode($OriginalArray); ?>; 
//Rest of the code 
</script> 

享受;)

+0

你做了什麼不同?沒有。 – crush 2013-02-26 13:45:13

+0

對不起...我沒有正確閱讀hilarudeens寫的東西! – JoDev 2013-02-27 15:31:59

0

用PHP編寫JavaScript代碼是一個可怕的做法。你不應該那樣做。相反,你可以做一些不同而又簡單的事情。

  1. 在PHP中,您通過將數組轉換爲JSON對象來生成JSON文檔。使用json_encode函數。將文件命名爲「json.php」(儘管命名是data.json可能是一種更好的做法,但您必須經過更多步驟)。
  2. 現在,您可以將文件包含在HTML文檔中 <script src="json.php"></script>或者您可以使用AJAX動態加載它。
  3. JSON對象將具有JavaScript數組。
+0

他正在使用'json_encode'。 – crush 2013-02-26 13:26:09

+0

@crush我的建議不是關於使用json_encode或其他函數。這是關於「不混合」PHP與JavaScript。你應該保持前端和後端分離。 – 2013-02-26 13:27:35

+0

然後,這應該是一個評論,而不是一個答案。 – crush 2013-02-26 13:28:51