2016-04-13 52 views
0

這不是How to pass variables and data from PHP to JavaScript?將變量和數據從PHP傳遞到JavaScript?

重複諮詢前面的問題之後,我還有一個:

我的問題是,當我得到JS中的PHP數組,我打印出來,我剛纔[對象] [對象]

<?php 
    $tl = array(
     0=>array('a', 'b', 1), 
     1=>array('c', 'd', 2) 
    ); 
?> 

和javascript:

<script type="text/javascript"> 
    var arr= <?php echo json_encode($tl); ?>; 

    for(var i=0;i<3;i++){ 
     alert(arr[i]); 
    } 
</script> 
+0

的輸出代替警報的,使用的console.log(ARR [I])。它將打印實際值。 –

回答

1

它使用console.log i最好顯示警報nstead:

console.log(arr[i]); //Check the result in you browser console 

的console.log:格式的對象很好,並允許他們穿越。

希望這會有所幫助。

+0

...和OP將不得不*打開他們的Javascript控制檯*,否則不會顯示太多... – deceze

+0

是的,這是真的,(我已經添加了評論)謝謝你的介入。 –

0

嘗試此)

alert()節目鍵入如果不是基本數據類型。在你的情況下,它的對象,這就是爲什麼它顯示[對象] [對象]

要調試JavaScript的一個應該使用console.log()等主機的方法,如:

console.log(); 
console.debug(); 
console.warn(); 
console.error(); 

一件事在這裏你試圖訪問嵌套數組的值,所以你可以像這樣使用alert:

var arr= <?php echo json_encode($tl); ?>; 
for(var i=0;i<3;i++){ 
    alert(arr[i][0] + " " + arr[i][1] + " " + arr[i][2]); 
}  

使用嵌套循環迭代內部數組值;

-3

試試這個:

<input type="hidden" id="array" value="<?php echo json_encode($tl); ?>" /> 

然後用

<script type="text/javascript"> 
var arr = getElementById('array').value 
for(var i=0;i<3;i++){ 
    alert(arr[i]); 
} 
</script> 
+0

當你已經可以直接訪問它時,你爲什麼要這麼做? –

+0

我認爲這種方式更加簡單高效 –

1

記住: 您沒有超過2個對象數組中,所以你不應該運行循環不止2次。 第一個循環爲您提供訪問數組對象的權限,然後您可以運行循環來顯示/獲取對象的屬性。

<?php 
    $tl = array(
     0=>array('a', 'b', 1), 
     1=>array('c', 'd', 2) 
); 
?> 

var arr =;

for(var i=0;i<2;i++){ 
    for(var j=0;j<3;j++){ 
     alert(arr[i][j]); 
     console.log(arr[i][j]);// you can also show the value from the console of your browser 
    } 
} 

控制檯

enter image description here