Php 将会话数组转换为javascript数组
我遇到了一个问题,无法将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])
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å,ä,ö时。当不使用它们时,这是工作!!!