我正在开发Facebook点击应用。在应用程序中,用户选择一个项目页面,在那里他可以写一个关于该项目的评论。在他撰写评论后,他点击了一个打开Facebook共享对话框的按钮,用户评论就在对话框中。
我想要完成的是在用户点击共享时将注释插入数据库,如果他点击取消则不会发生任何事情。
这是我用来打开对话框的功能:
function FacebookPostToWall()
{
var comment = document.getElementById('comment').value;;
FB.ui({
method: 'feed',
link: 'http://linkfortheitem.com',
name: "Name of the item",
caption: "Caption for the item",
description: '' + comment,
picture: '',
message: ''
},
function(response){
if(response && response.post_id) {
alert('user has shared');
}else {
alert('user has not shared');
}
});
}
所以我的问题是,有没有办法调用我的php函数将注释插入回调函数内的数据库?
答案 0 :(得分:0)
您可以使用ajax将注释发送到可以通过$_POST['comment']
(或您决定调用参数)检索参数的php脚本。如果你使用普通的旧javascript,第一个例子会显示一些用于发送带有你的评论变量的ajax请求的东西。第二个更容易使用的例子使用jQuery,这绝对值得学习。这两个都会在您的脚本中立即(或替换)alert('user has shared');
之后立即执行,这样只有在Facebook评论成功发布后才会发送呼叫。
如果您有任何疑问,请告知我们。)
var xmlhttp;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert('Comment sent to PHP, and the response is: '+xmlhttp.responseText);
}
});
xmlhttp.open("POST","yourphpscript.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("comment="+comment);
$.post('yourphpscript.php', { 'comment': comment }, function(response) {
alert('Comment sent to PHP, and the response is: '+response);
});