从帖子到用户墙的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&amp;代码中的fb_link。什么都没有写入数据库。如果我削减fb_name&amp; fb_link在它工作的$ .post之外,user_id被写入数据库。 这有效:
$.post('<?php echo $siteurl; ?>write.php?fbusr_id=' + userid);
找不到原因。求助。
尼尔
答案 0 :(得分:0)
第一个原因,getJSON是异步方法,你应该在它们的响应函数中使用响应数据。
第二个原因,POST方法应该将数据作为对象而不是字符串参数发送。
Thrid原因,如果你真的想将数据作为查询字符串参数发送(也许是通过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){} );
})