$.getJSON 返回了选定的项目


$.getJSON returned selected item

我正在创建一种像任何社交网络:D一样的API系统。基本上,我创建了一个使用$getJSON方法调用的 php 页面:

这是获取用户.php

<?  
include 'config.php'; connect(); 
$get = trim(strip_tags($_GET['id']));
$sql = "SELECT username,id,avatar FROM utenti WHERE id = $get ";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
        $row_set[] = $row;
}
echo json_encode($row_set);
?>

(示例 id=2)

[{"username":"Firefoxer","id":"2","avatar":"account'/firefoxer'/pic.jpg"}]

.js功能

$.getJSON('getuser.php', {
    id: user
}, function (data) {
    callback = data.avatar
});
alert(callback);

问题是...为什么它每次都返回未定义的对象?代码似乎是对的,有什么想法吗?

由于您正在获取对象数组,因此您必须提及data的索引。即data[0].avatar

$.getJSON( 'getuser.php',{ id: user }, function(data) { 
   callback = data[0].avatar 
   alert(callback);
});

我不确定,但请尝试在回显之前将标头设置为 JSON 对象,如下所示:

header('Content-type: application/json');
echo json_encode($row_set);

只有在执行回调函数后,您才能访问数据:

$.getJSON( 'getuser.php',{ id: user }, function(data) {
    // now it’s available
    console.log(data);
});
// now it’s not

这称为异步编程,如果这对您来说是一个新概念,请在SO上进行搜索。