2

我在将会话数组从 php 输入到 javascript 时遇到问题

我在这里设置会话数组,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,它应该是该字段中的一些文本,它print_r($_SESSION['row2'][0][2]);在 php 代码中工作正常。

4

3 回答 3

1

使用萤火虫控制台或铬控制台。之后将整个转储row2到控制台并预览数据。

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

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

于 2012-04-10T13:57:25.120 回答
0

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

var row2 = '<?php echo json_encode($_SESSION['row2']) ?>';
row2 = JSON.parse(row2);
于 2012-04-10T14:02:32.840 回答
0

正如亚历克斯所说,如果您在 PHP 中有一个关联数组,则 json_encode 输出将不一样。

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

(注:你的代码很奇怪)

于 2012-04-10T14:02:33.613 回答