Facebook js SDK与ajax变量发送到PHP

Facebook js SDK send with ajax variabiles to PHP

本文关键字:PHP 变量 ajax js SDK Facebook      更新时间:2023-09-26

首先感谢大家的关注。我想要的是使用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页面。

谢谢

所以基本上这里发生的是ajax脚本在页面加载时被触发。然而,这只是在dom已经被渲染之后。要解决这个问题,您需要在特定事件上触发ajax函数,例如:button click。

还请注意,因为你的整个页面是在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'];
            }
?>

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

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

除此之外,参数也被传递到index.php中并被捕获。这里你可以使用PHP操作。请让我知道你在这段代码中遇到的问题是什么?我一定会尽力帮助你的

像这样做:

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
}