2015-06-19 112 views
3

一個小問題,我似乎無法弄清楚;使用JavaScript for循環,訪問php數組變量

所以我有一個PHP數組,我想通過JavaScript訪問使用for循環來指定索引。例如,

<?php 
$myArray = array("a", "b", "c"); 
?> 

<script type="text/javascript"> 
for(var i = 0; i < elements.length; i++){ 
     $('<div class="pops"> Hello '+ THIS IS WHERE I WANT THE PHP VARIABLES +'</div>').appendTo(elements[i]); 
</script> 

我想使用訪問$ myArray的變量「我」在JavaScript for循環,因爲將有相同數量的變量作爲循環迭代。

我已經嘗試瞭解可能的解決方案來解決這個問題,但一直未能弄清楚。 我已經嘗試使用下面的代碼,但沒有提出什麼;

$('<div class="pops"> Hello '+ <?php echo $myArray[i]; ?> +'</div>').appendTo(elements[i]); 

我覺得我因爲以下兩個原因而陷入困境,我的語法可能完全錯誤。我用來訪問數組的索引的'我'變量仍然是一個JavaScript變量。

我是javascript/php的新手,請原諒我。 感謝您的幫助!

回答

2

簡單,轉換爲json並添加到腳本元素。

<?php $myArray = array("a", "b", "c"); ?> 

<script type="text/javascript"> 

// I assume phpArray length equals to elements length 

var phpArray = <?php echo json_encode($myArray); ?> ; 
for(var i = 0; i < elements.length; i++){ 
    $('<div class="pops"> Hello '+ phpArray[i] +'</div>').appendTo(elements[i]); 

</script> 
+0

謝謝。我實際上仍然得到一個空的myArray回報 – Trying2LearnMath

0

我看到了這樣做的兩種方法:一種是使用JSON,如@venca所說。

另一種方法是使用php循環代替。

<? 
    foreach ($myArray as $elem){ 
    echo '<div class="pops"> Hello '.$elem.'</div>'; 
    } 
?> 

這將生成一個div,其中每個元素都會在您的php數組中彈出。如果你想運行一些javascript代碼,你應該這樣的:

<script> 
<? 
    int i=0; 
    foreach ($myArray as $elem){ 
    echo '$("<div class=\"pops\"> Hello '.$elem.'</div>").appendTo(elements['.i.'])'; 
    i++; 
    } 
?> 
</script>