我正在使用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
}
});
Run Code Online (Sandbox Code Playgroud)
php页面返回的echo json_encode($string);是
"{ 'vote' : [{ 'line' : 'newline1', 'up' : '0', 'down' : '1'},
{ 'line' : 'newline2', 'up' : '4', 'down' : '1'}
]}"
当我运行它时,会出现错误
Uncaught TypeError: Cannot read property '0' of undefined 在上面的ajax调用评论中
谁能帮我指出我做错了哪里?
更新:
变量$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);
Run Code Online (Sandbox Code Playgroud)
不使用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);
Run Code Online (Sandbox Code Playgroud)