0

ユーザーのID、名前、電子メール、および彼が送信した入力値をデータベースに送信する必要があるFacebookアプリケーションがあります。なぜか、データが送信されていないことがわかりません。saveuser.php で変数をエコーし​​ようとしましたが、入力値のみを取得しています。また、コンソールにエラーが表示されません。私の疑いは、それがAJAX関数と関係があるということです:

編集 :

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
                      };
                 });
        }); 
    } 
});

セーブユーザー.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);
}

どんな助けでも大歓迎です。

4

1 に答える 1

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 アクションを機能させることができませんでした。

于 2013-09-01T12:34:05.177 に答える