我跑我的網站上一個特殊的Facebook登錄,其中,當使用點擊它,必須執行以下操作:爲什麼在Facebook登錄時不會運行這個ajax?
- 連接與FB
- 如果Facebook ID的用戶數據已經認可,千萬XXX
- 如果不承認Facebook的ID,做YYY
出於某種原因,我不能讓AJAX查詢,檢查Facebook的ID才能正常工作。我已經花了幾個小時在這個上面,但仍然沒有運氣(開始感覺像一個真正的時間片)...即使我設置查詢只返回0(例如,更改第二個回聲也是'回聲0') ,它不會(除非我將整個函數簡化爲'echo 0')。任何想法爲什麼這可能會發生?下面的代碼:
調用函數(使用var FBID的輸入)AJAX查詢:
<?php
// configuration
require("../html/includes/config.php");
// connect to server
$connect = mysql_connect(SERVER, USERNAME, PASSWORD);
$fbid = $_POST["fbid"];
$fbidcheck = query('SELECT * FROM usertable WHERE fbid = ?', $_POST["fbid"]);
if (isset($fbidcheck[0]["fbid"]))
echo 0;
else
echo 1;
?>
稱爲當有人點擊登錄按鈕JS功能:
// FB login function
function fblogin() {
FB.login(function(response) {
if (response.authResponse) {
// Here, I want to test if the facebook ID is already in the table
var fbid = response.authResponse.userID;
$.post("check_fbid.php", {'fbid': fbid}, function(result)
{
if(result == 0)
{
// login in the user
// use fbid to call session, etc. for login
location.reload();
return true;
}
else
{
// open new box on page to let user register
openRegisterBox();
return false;
}
});
} else {
// Login was cancelled or failed
return false;
}
}, {scope: 'email'});
}
再次,我已經跟蹤問題到ajax查詢運行不正常(我甚至試圖重新創建它幾次)。任何幫助將非常感激。
謝謝
jQuery代碼看起來像它應該工作,如果它工作時,你的PHP只是一個迴音0語句,那麼也許你返回不僅僅是一個1或0以上你的PHP。你看看你的PHP腳本返回什麼? – John 2013-04-09 22:37:35
不幸的是,我不知道如何直接吐出來自ajax的輸出(總是需要打印某些東西並得到結果)。然而,我知道你所描述的不是問題,因爲我已經嘗試了從上面的確切的PHP代碼,並將其設置爲其他回聲0(所以在這兩種情況下,它應該回顯0),仍然該函數將執行,如果0沒有被退回。這對我來說很奇怪,我想知道它是否與facebook元素有關 – cschippe 2013-04-09 23:14:28
我不能肯定地說不知道你的PHP文件真的返回。 我剛剛用Facebook JS SDK實現了你的代碼,它工作得很好。我想知道你的PHP是否顯示警告或錯誤。嘗試註釋掉DB代碼並返回0或1. – John 2013-04-10 00:29:11