这不是How to pass variables and data from PHP to JavaScript?
的副本在咨询上一个问题后,我还有另一个问题:
我的问题是当我在Js中获取php数组并打印它时,我只有[object] [object]
<?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 :(得分:1)
您应该使用console.log
代替alert:
console.log(arr[i]); //Check the result in you browser console
console.log:很好地格式化您的对象并允许遍历它们。
希望这有帮助。
答案 1 :(得分: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
}
}
控制台输出
答案 2 :(得分:0)
试试这个;)
的原因
alert()
显示类型,如果不是基本数据类型。在你的情况下,它的对象是它显示[对象] [对象]
要调试JavaScript,应使用console.log()
和其他控制台方法,如:
console.log();
console.debug();
console.warn();
console.error();
等
此处还有一件事是您尝试访问嵌套数组的值,以便您可以使用以下警告:
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 :(得分:-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>