繁体   English   中英

Facebook js SDK与Ajax变量一起发送到PHP

[英]Facebook js SDK send with ajax variabiles to PHP

首先感谢您的关注。 我想要使​​用Facebook js SDK来获取用户的名称和ID,并将其发送到同一页面(index.php)中的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函数,例如:单击按钮。

还要注意,由于您的整个页面都是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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM