0

使用从帖子到用户墙的 response_id 我剥离了 user_id:

var userid = (response.post_id);
userid = userid.substring(0, userid.indexOf('_'));

好的。接下来我调用 facebook 图表:

$.getJSON('http://graph.facebook.com/' + userid + '?callback=?',function(data){
var name = data["name"];
var fblink = data["link"];
})

现在我尝试将数据保存在数据库中。所以我做以下事情:

$.post('<?php echo $siteurl; ?>write.php?fbusr_id=' + userid + '&fb_name=' + name + '&fb_link=' + fblink);

问题:如果我只发送 fbusr_id 但它不能与代码中的 fb_name 和 fb_link 一起使用。没有任何内容写入数据库。如果我从 $.post 中删除 fb_name 和 fb_link 它可以工作,则 user_id 会被写入数据库。这样可行:

$.post('<?php echo $siteurl; ?>write.php?fbusr_id=' + userid);

找不到原因。谢谢帮助。

尼尔

4

1 回答 1

0

第一个原因,getJSON 是异步方法,您应该在其响应函数中使用响应数据。

第二个原因,POST 方法应该将数据作为对象而不是字符串参数发送。

第三个原因,如果您真的想将数据作为查询字符串参数发送(可能通过 GET 方法发送),您应该使用 encodeURIComponent(fblink) 而不是 fblink 或您想要发送的东西。不过,你可以试试这个

$.getJSON('http://graph.facebook.com/' + userid + '?callback=?',function(data){
        var name = data["name"];
        var fblink = data["link"];
        $.post('<?php echo $siteurl; ?>write.php', {fbusr_id:userid,fb_name:name,fb_link:fblink},
                 function(response){} );
})
于 2013-10-13T08:54:25.357 回答