【问题标题】:Session array into javascript array会话数组转换为 javascript 数组
【发布时间】:2012-04-22 19:47:51
【问题描述】:

我在将会话数组从 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,它应该是这个字段中的一些文本,它可以在 php 代码中与print_r($_SESSION['row2'][0][2]); 一起工作。

【问题讨论】:

  • 你能在浏览器中view source 看看var row2 = ... 变成了什么吗? (其实看javascript端的JSON)
  • {"0":"27","chapterNumber":"27","1":"0","number":"0","2":null,"nameOfTask" :null}
  • 好吧,从这个输出中可以清楚地看到下雨,索引2 实际上是空的。如果回显 $row2[ 0 ][ 2 ] 打印一个值,那么问题是在插入该值然后从$_SESSION 集合或json_encode() 中提取它时,$row[ 应该出现的值是多少0][2]?
  • $row[0][2] 的值是“Rätt eller fel!”而且我发现了为什么它是空的,这是当我使用瑞典字符 å,ä,ö 时。当不使用它们时它的工作!!!
  • 这是一个新问题,如何通过使用瑞典字符来解决这个问题,或者我应该更新这个问题,我是新来的。我需要使用瑞典字符!!!

标签: php javascript arrays session


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢它帮了我很多,我发现了问题,这是我使用瑞典字符 å,ä,ö 的时候。当不使用它们时它的工作!!!
【解决方案2】:

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

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

【讨论】:

  • 给出与以前相同的结果
【解决方案3】:

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

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

(注:你的代码很奇怪)

【讨论】:

  • 我刚刚完成了一门 PHP 课程,这是我的第一个“工作”,在我在这里的另一个问题上看到它之前,我从未使用过 JSON,我必须研究更多。我不知道这是否是将 PHP 会话数组转换为 javascript 的最佳方式。
猜你喜欢
  • 1970-01-01
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
  • 2017-11-14
  • 2018-08-06
  • 2013-05-26
  • 2011-08-02
  • 1970-01-01
相关资源
最近更新 更多