Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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数组_Php_Javascript_Arrays_Session - Fatal编程技术网

Php 将会话数组转换为javascript数组

Php 将会话数组转换为javascript数组,php,javascript,arrays,session,Php,Javascript,Arrays,Session,我遇到了一个问题,无法将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])

我遇到了一个问题,无法将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]);
var-row2=;
警报(第2行[0][0]);
警报(第2行[0][1]);
警报(第2行[0][2]);
row2[0][0]
row2[0][1]
工作正常,我从数组中获取数字
但是
row2[0][2]
给我null值,它应该是这个字段中的一些文本,它可以与
print\r($\u SESSION['row2'][0][2])一起工作。

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

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

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

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

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

如Alex所述,如果PHP中有一个关联数组,json_编码输出将不同

这可能是问题所在吗?由于您似乎没有使用关联键,因此可以避免使用mysql\u fetch\u数组,而可以尝试使用mysql\u fetch\u行


(注意:你的代码很奇怪)

你能在浏览器中查看源代码吗,看看
var row2=…
变成了什么?(实际上,请参见javascript端的JSON){“0”:“27”,“chapterNumber”:“27”,“1”:“0”,“number”:“0”,“2”:null,“nameOfTask”:null}从这个输出可以清楚地看出,索引
2
实际上是null。如果回显$row2[0][2]打印一个值,那么问题在于插入值并从
$\u会话
集合中提取它,或者使用
json_encode()
,那么$row[0][2]应该显示什么值?$row[0][2]的值是“Rätt eller fel!”,我已经发现了它为什么为空,当我使用瑞典语charactarå,ä,ö时。当不使用它们时,这是工作!!!这是一个新的问题,如何使用瑞典语字符来解决这个问题,还是我应该更新这个问题,我是新来的。我需要使用瑞典字符!!!给出了与以前相同的结果我刚刚完成了一门PHP课程,这是我的第一个“工作”,在我在这里的另一个问题上看到JSON之前,我从未使用过它,我必须进一步研究它。我不知道这是否是将PHP会话数组转换成javascript的最佳方法。Thanx它对我帮助很大,我发现了问题所在,就是当我使用瑞典语charactarå,ä,ö时。当不使用它们时,这是工作!!!