Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将变量和数据从PHP传递到JavaScript?_Javascript_Php - Fatal编程技术网

将变量和数据从PHP传递到JavaScript?

将变量和数据从PHP传递到JavaScript?,javascript,php,Javascript,Php,这不是一个复制品 在查阅了上一个问题后,我有另一个问题: 我的问题是,当我在Js中获得php数组并打印它时,我只有[object][object] <?php $tl = array( 0=>array('a', 'b', 1), 1=>array('c', 'd', 2) ); ?> 和javascript: <script type="text/javascript"> var arr=

这不是一个复制品

在查阅了上一个问题后,我有另一个问题:

我的问题是,当我在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>

var-arr=;

对于(var i=0;i您应该使用
console.log
而不是警报来显示它:

console.log(arr[i]); //Check the result in you browser console
console.log:很好地格式化对象,并允许遍历它们

希望这有帮助。

试试这个;)

alert()
如果不是基本数据类型,则显示类型。在你的例子中,它是Object,这就是为什么它显示[Object][Object]

要调试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]);
}    
var-arr=;
对于(var i=0;i尝试以下方法:

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

记住:
数组中的对象不超过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
  }
}

for(var i=0;在警报位置,使用console.log(arr[i])。它将打印实际值……OP也必须打开他们的Javascript控制台,否则不会显示太多内容……是的,这是真的,(我在注释中添加了这一点)谢谢你的介入。既然你已经可以直接访问它了,为什么你还想这么做呢?我认为这样更容易、更有效
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
  }
}