Javascript 未捕获类型错误:无法读取属性';0';未定义的
我正在使用jQuery进行一个ajax调用,如下所示Javascript 未捕获类型错误:无法读取属性';0';未定义的,javascript,jquery,Javascript,Jquery,我正在使用jQuery进行一个ajax调用,如下所示 $.ajax({ type: "POST", url: "proc.php", dataType: 'json', data: dataString, cache: false, success: function(data){ alert(data.vote[0].line); //Where error shows } }); php页面返回echo json
$.ajax({
type: "POST",
url: "proc.php",
dataType: 'json',
data: dataString,
cache: false,
success: function(data){
alert(data.vote[0].line); //Where error shows
}
});
php页面返回echo json\u encode($string)代码>哪个像
“{'vote':[{'line':'newline1','up':'0','down':'1'},
{'line':'newline2','up':'4','down':'1'}
]}“
当我运行它时,出现了一个错误
未捕获类型错误:无法读取ajax调用中上面注释行上未定义的属性“0”
谁能帮我指出我哪里做错了
更新:
变量$string
生成如下
$comma = ",";
$success = mysql_query($query, $connection);
while($row = mysql_fetch_array($success)){
$voteUp = $row['voteup'];
$voteDwn = $row['votedwn'];
$vote .= $comma . "{ 'line' : '{$row['entryid']}', 'up' : '{$voteUp}', 'down' : '{$voteDwn}'";
$comma = ",";
}
$string = "{ 'vote' : [" . $vote . "]}";
echo json_encode($string);
不要用PHP编写“jsoned”字符串,而是使用数组<代码>json_encode()
将发挥神奇的作用
$return = array();
$success = mysql_query($query, $connection);
while ($row = mysql_fetch_array($success)) {
$return['vote'][] = array(
'line' => $row['entryid'],
'up' => $row['voteup'],
'down' => $row['votedown'],
);
}
echo json_encode($return);
不要用PHP编写“jsoned”字符串,而是使用数组<代码>json_encode()
将发挥神奇的作用
$return = array();
$success = mysql_query($query, $connection);
while ($row = mysql_fetch_array($success)) {
$return['vote'][] = array(
'line' => $row['entryid'],
'up' => $row['voteup'],
'down' => $row['votedown'],
);
}
echo json_encode($return);
在jQuery的最新版本中,使用了本机浏览器JSON解析方法,而不是传统的eval()方法。Strict JSON不支持您的示例使用的单引号字符串。
如前所述,使用json_encode($array)或手动修复json在jQuery的最新版本中,使用本机浏览器json解析方法,而不是传统的eval()方法。Strict JSON不支持您的示例使用的单引号字符串。
如前所述,使用json_encode($array)或手动修复json@ptamzz能否确保
警报(数据)
打印您在问题中给出的相同字符串。请检查JSON\u encode
创建的JSON字符串json_encode
应该创建一个有效字符串,但谁知道呢。。。奇怪的是,这起作用了…@ptamzz:嗯,我假设json\u encode
生成一个有效的字符串。。。奇怪的在JSON中,键和字符串必须使用双引号。看见您试图编码的数据是什么?能否提供var\u导出($string)
?为什么要创建JSON格式的字符串并将其传递给JSON\u编码
?这不是它的工作原理。阅读文档:@ptamzz您能否确保警报(数据)
打印您在问题中给出的相同字符串。请检查JSON\u encode
创建的JSON字符串json_encode
应该创建一个有效字符串,但谁知道呢。。。奇怪的是,这起作用了…@ptamzz:嗯,我假设json\u encode
生成一个有效的字符串。。。奇怪的在JSON中,键和字符串必须使用双引号。看见您试图编码的数据是什么?能否提供var\u导出($string)
?为什么要创建JSON格式的字符串并将其传递给JSON\u编码
?这不是它的工作原理。阅读文档:@LekisS:因为您正在创建一个JavaScript对象,而不是JSON,你甚至可以省略键周围的引号,如果它们是有效的标识符的话。我累了。谢谢@FelixKling@LekisS:因为您正在创建一个JavaScript对象,而不是JSON,你甚至可以省略键周围的引号,如果它们是有效的标识符的话。我累了。谢谢@Felix Kling