0

我正在开发 Facebook Tap 应用程序。在应用程序中,用户选择一个项目页面,然后他可以在其中写关于该项目的评论。在他写完评论后,他点击一个按钮,打开一个 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 函数,将评论插入到回调函数中的数据库中?

4

1 回答 1

0

您可以使用ajax将注释发送到 php 脚本,该脚本可以通过$_POST['comment'](或您决定调用参数的任何方式)检索参数。如果您使用的是普通的旧 javascript,第一个示例向您展示了一些可用于发送带有您的评论变量的 ajax 请求的内容。第二个非常简单的示例使用jQuery,这绝对值得学习。这两个都将在您的脚本之后(或替换)立即执行alert('user has shared');,因此只有在成功发布 facebook 评论时才会发送调用。

让我知道这是否是您正在寻找的,如果您有任何问题:)

Javascript 示例

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);

jQuery 示例

$.post('yourphpscript.php', { 'comment': comment }, function(response) {
        alert('Comment sent to PHP, and the response is: '+response);
    });
于 2013-05-29T18:53:21.977 回答