我有一个链接,通过jquery将数据发布到另一个页面vote.php
。
当我点击那个链接时,它会根据条件返回状态。如果该用户之前发布了投票,那么它会显示"已经投票"或"您的投票已发布"。
一切都很顺利。
我正在使用脸书贴墙sdk。
现在,当我从vote.php调用fb_publish_on_wall
函数时,消息成功地发布到了我的fb墙上,但它没有像"Your vote posted"那样返回投票状态。
问题出在哪里。当我注释掉我调用fb_publish_on_wall
函数的那一行时,它就可以正常工作了。
我认为jquery在调用fb_publish_on_wall
函数后没有得到vote.php
的响应。
我将如何解决此问题?
更新:这是fb_publish_on_wall函数
function fb_publish_on_wall($message,$link,$picture,$name,$description,$user_facebook2)
{
$message = str_replace(array('<br />', '<br>'), "'n", $message);
$description = str_replace(array('<br />', '<br>'), "'n", $description);
$name = str_replace(array('<br />', '<br>'),"'n", $name);
$link = str_replace(array('<br />', '<br>'), "'n", $link);
global $facebook;
$publishStream = $facebook->api("/$user_facebook2/feed", 'post', array(
'message' => "$message",
'link' => "$link",
'picture' => "$picture",
'name' => "$name",
'description'=> "$description"
));
print $user_facebook2;
}
更新:vote.php。此文件很大。所以我只显示vote.php 中的那两行
echo json_encode(array("state"=>"<span style='color:#8DA326'>".l("Your vote posted").".</span>"));
fb_publish_on_wall($message,$link,$picture,$name,$description,$user_facebook2);
删除fb_publish_on_wall函数中的print语句,因为这也是返回值的一部分,并且会干扰您在jquery中解析的json_encoded返回值。