会话数组进入javascript数组

时间:2012-04-10 13:52:47

标签: php javascript arrays session

我有一个问题,从php进入javascript的会话数组

我在这里设置了sessions数组,print_r仅用于检查,所以它是正确的

  while($row2[]=mysql_fetch_array($result2))
    $_SESSION['row2'] = $row2; 
  print_r($_SESSION['row2'][0][0]);
  print_r($_SESSION['row2'][0][1]);
  print_r($_SESSION['row2'][0][2]);

在我的javascript中我使用此功能,警报仅用于检查

 var row2 =<?php echo json_encode($_SESSION['row2']) ?>;
 alert (row2[0][0]);
 alert (row2[0][1]);
 alert (row2[0][2]);

row2[0][0]row2[0][1],工作正常,我从数组中获取数字 但是row2[0][2]给我的值为null,它应该是这个字段中的一些文本,它可以在php代码中与print_r($_SESSION['row2'][0][2]);一起使用。

3 个答案:

答案 0 :(得分:1)

使用firebug控制台或chrome控制台。之后将整个row2转储到控制台并预览数据。

// JavaScript
var row2 =<?php echo json_encode($_SESSION['row2']) ?>;
console.debug(row2);

另外,请记住,所有PHP关联数组都将成为JSON对象,应使用.

进行访问

答案 1 :(得分:0)

您必须对Array进行编码,但请记住结果是一个字符串,因此您必须用单引号将其括起来,然后将其解析为一个对象:

var row2 = '<?php echo json_encode($_SESSION['row2']) ?>';
row2 = JSON.parse(row2);

答案 2 :(得分:0)

正如亚历克斯所说,如果你有一个关联数组到PHP,json_encode输出将是不一样的。

这可能是问题吗?由于您似乎不使用关联键,因此您可以避免使用mysql_fetch_array并尝试使用mysql_fetch_row。

(Nb:你的代码很奇怪)