$ .getJSON返回所选项目

时间:2013-10-29 09:39:37

标签: javascript php jquery ajax json

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

这是 getuser.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);

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

3 个答案:

答案 0 :(得分:0)

我不确定但是尝试在您的回声之前将标题设置为JSON对象,如下所示:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

这称为异步编程,如果这是一个新概念,请在此处进行搜索。