0

我正在创建一种类似于任何社交网络的 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);

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

4

3 回答 3

0

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

header('Content-type: application/json');
echo json_encode($row_set);
于 2013-10-29T09:42:28.827 回答
0

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

$.getJSON( 'getuser.php',{ id: user }, function(data) { 
   callback = data[0].avatar 
   alert(callback);
});
于 2013-10-29T09:43:09.767 回答
0

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

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

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

于 2013-10-29T09:45:38.753 回答