Facebook js SDK使用ajax变量发送到PHP

时间:2016-09-22 07:52:11

标签: javascript php jquery ajax facebook

首先感谢您的关注。 我想要的是使用Facebook js SDK获取用户的名称和id,并将它们发送到同一页面的php(index.php)。我设法获取用户名和ID并将它们保存在JS中的2个变量(js_fb_id和js_fb_name)中,但是当我尝试进行ajax调用并将它们发送到php时,没有任何反应。

所以,在我的index.php上,我有ajax脚本

            var js_fb_id = response.id; 
            var js_fb_name = response.name; //this variables are set after the user is loged in
                $.post( 'index.php', 
                    {
                    php_fb_id: js_fb_id,
                    php_fb_id: js_fb_name
                    },

                function (data){

                     console.log(data);
                }
            ) 

稍后,我想通过AJAX发送变量

        <?php if ( isset( $_POST['php_fb_id'] ) ) {
                echo $_POST['php_fb_id'];
            }
        ?>

这可能吗?它在我使用单独的页面进行AJAX调用时有效,但是我无法从那里获取php变量到我的index.php页面。

谢谢

3 个答案:

答案 0 :(得分:1)

所以基本上这里发生的是在页面加载时触发ajax脚本。 但是这只是在dom已经渲染之后。 要解决此问题,您需要在特定事件上触发ajax函数,例如:单击按钮。

另请注意,由于您的整个页面都是html,因此ajax功能会将整个页面作为“数据”返回。而不是你想要设置的php变量。(你将能够在控制台中看到这个)

另请注意,如果要在页面上打印值,则必须通过ajax修改回调函数中的html,例如:

$(document).ready(function() {

 $('#post').click(function() {

      $.post( 'text.php', 
                    {
                    php_fb_id: js_fb_id,
                    php_fb_name: js_fb_name
                    },

                function (data, status){

                 $("#txt").html(data); //you can print returned data 
                     console.log(data);
                }
            ) 

  });
}); 

这应该放在一个单独的php文件中,例如text.php

<?php 
    if ( isset( $_POST['php_fb_id'] ) ) {
                echo $id = $_POST['php_fb_id'];
            }

?>

答案 1 :(得分:0)

您的代码看起来很好,除了您在参数中传递两次php_fb_id。

$.post( 'index.php', {
   php_fb_id: js_fb_id,
  php_fb_id: js_fb_name
},

除此之外,参数也会传入index.php并被捕获。所以你可以在那里进行php操作。请告诉我您在此代码中遇到的问题是什么?一定会尽力帮助

答案 2 :(得分:0)

做这样的事情:

if ($_SERVER['REQUEST_METHOD'] === 'POST') { //check if it's Post request
    if( isset( $_POST['php_fb_id']  && isset( $_POST['php_fb_name']) {
        $name = $_POST['php_fb_name'];
        $id = $_POST['php_fb_id'];
        ....
        echo "OK";
    }else{
        echo "ERROR, need input";
    }
else{
    //Your Index Code Here
}