在javascript函数中检索变量值

时间:2013-08-07 11:48:14

标签: php javascript facebook

我正在为我的项目使用facebook API,并在var mydata

中以下列方式获取一些数据
if (response.status === "connected")
        {
            LodingAnimate(); //Animate login
            FB.api('/me?fields=movies,email', function(mydata) { //--
            console.log(mydata);
              if(data.email == null)
              {
                 alert("You must allow us to access your email id!");
                 ResetAnimate();
             }
   }

我对此代码没有任何问题。但我想使用ajax调用将此数据发送到进程并插入到数据库中。

我的ajax电话:

function AjaxResponse()
 {
    var send=document.ge(mydata)      **//Here I want to fetch mydata from previous code**
    var datas = document.elements['id'].value;
    var s = 'connect=1'; 
     $.ajax({
    type: "POST",
    url: "process_facebook.php",
    data: s,send                   **//Is this correct way to send s and send togather? I have tried with only 's' which works fine but dont know about both togather**
    }).done(function(result) {
    $("#fb-root").html(result);
    });
   }

有人可以协助如何在javascript函数中获取mydata并查看代码。

1 个答案:

答案 0 :(得分:1)

由于您正在进行的Facebook API调用是异步的,因此无法从您的ge函数中返回该值。

相反,使用回调,就像Facebook和其他人一样。见下文。

另外,代码片段中隐藏的第二个无关问题的答案是“不,那不是你怎么做的”。我已经给你一个如何在下面做这个的指针。

function AjaxResponse()
{
    // Callback here----v arg ---v
    document.ge(mydata, function(send) {
        var datas = document.elements['id'].value;
        $.ajax({
            type: "POST",
            url: "process_facebook.php",
            data: {
               connect: 1,
               paramname: mydata      // <=== I don't know what the name of this param is
            }
        }).done(function(result) {
        $("#fb-root").html(result);
    });
}

..让你的代码在Facebook调用回调时调用回调。

function ge(data, callback) {
    // ...
    if (response.status === "connected") {
        LodingAnimate(); //Animate login
        FB.api('/me?fields=movies,email', function (mydata) { //--
            console.log(mydata);
            if (data.email == null) {
                alert("You must allow us to access your email id!");
                ResetAnimate();
            }
            else {
                callback(data); // <=== Trigger the callback
            }
        }
       // ...
    }
    // ...
}