我有一个Facebook应用程序,我需要获取用户的ID,姓名,电子邮件和他提交的输入值发送到数据库。出于某种原因,我不知道数据是否未被发送。我已经尝试在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
};
});
});
}
});
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 :(得分: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行动起作用。