2013-08-31 52 views
0

我有一个facebook应用程序,我需要将用户的ID,姓名,电子邮件和他提交的输入值发送到数据库。出于某种原因,我不知道数据未被发送。我试过在saveuser.php中回显变量,而我只获取输入值。我也没有在控制台中发现任何错误。我怀疑是它的东西做AJAX功能:无法将Facebook用户数据发送到数据库

编辑:

FB.login(function(response) 
{ 
    console.log(response); 
    if (response.status=="connected") 
    { 
     console.log("You're logged in"); 
     FB.api('/me', function(response) 
     { 
      $.ajax({ 
       type: 'POST', 
       url: 'saveuser.php', 
       data: { 
         name = response.name, 
         fbid = response.id, 
         email = response.email 
         }; 
       }); 
     }); 
    } 
}); 

saveuser.php:

require('config.php'); 

if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['fbid'])) 
{ 
    $fbid = mysql_real_escape_string($_POST['fbid']); 
    $name = mysql_real_escape_string($_POST['name']); 
    $email = mysql_real_escape_string($_POST['email']); 
    $receipt = mysql_real_escape_string($_POST['receipt']); 
    addUser($name, $email, $fbid, $receipt); 
} 

function addUser($name, $email, $fbid, $receipt) 
{ 
    $query = "SELECT id FROM rkiosk_monster_users WHERE fbid = '$fbid' LIMIT 5"; 
    $result = mysql_query($query); 
    $rows = mysql_num_rows($result); 
    if ($rows == 0) 
    { 
     $query = "INSERT INTO rkiosk_monster_users (name, email, fbid, receipt) VALUES ('$name', '$email', '$fbid', '$receipt')"; 
    } 
    mysql_query($query); 
} 

任何帮助,将不胜感激。

回答

0

我设法通过使用jQuery来解决问题:

FB.api('/me', function(response) { 

    //alert(response.name); 
    $("#name").val(response.name); 
    $("#fbid").val(response.id); 
    $("#email").val(response.email); 

    }); 

    $(function(){ 
    $("#check").submit(function(e){  
     e.preventDefault(); 

     $.post("saveuser.php", $("#check").serialize(), 
      function(data){ 
       var jqueryObj = $('<p>You've been registered!</p>').appendTo('#alertbox'); 
       $("#checknumber").val(""); 
      }, "json");  
     }); 
}); 

,并通过使用隐藏的输入,所以我可以提交他们的价值观:

<input type="hidden" name="fbid" id="fbid"/> 
    <input type="hidden" name="email" id="email"/> 
    <input type="hidden" name="name" id="name"/> 

不干净的方式,但我做不到让AJAX行动起作用。

相关问题