Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
Javascript 未捕获类型错误:无法读取属性';0';未定义的_Javascript_Jquery - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';0';未定义的

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

我正在使用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\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