[英]Passing json to php and getting response
我是php / ajax / jquery的新手,遇到了一些問題。 我正在嘗試將json傳遞到php文件,使用json數據運行一些任務,然后發出響應。 我正在使用facebook api來獲取用戶登錄信息,獲取詳細信息,將詳細信息翻譯為json,將json發送到服務器並讓服務器檢查用戶ID是否已存在於數據庫中。 這是我的javascript / jquery
function checkExisting() {
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.id );
var json = JSON.stringify(response);
console.log(json);
$.ajax({
url: "php.php",
type: "POST",
data: {user: json},
success: function(msg){
if(msg === 1){
console.log('It exists ' + response.id );
} else{
console.log('not exists ' + response.id );
}
}
})
});
}
這是我的PHP文件
if(isset($_POST['user']) && !empty($_POST['user'])) {
$c = connect();
$json = $_POST['user'];
$obj = json_decode($json, true);
$user_info = $jsonDecoded['id'];
$sql = mysql_query("SELECT * FROM user WHERE {$_GET["id"]}");
$count = mysql_num_rows($sql);
if($count>0){
echo 1;
} else{
echo 0;
}
close($c);
}
function connect(){
$con=mysqli_connect($host,$user,$pass);
if (mysqli_connect_errno()) {
echo "Failed to connect to Database: " . mysqli_connect_error();
}else{
return $con;
}
}
function close($c){
mysqli_close($con);
}
我希望它根據用戶ID是否已在表中返回1或0,但它只返回很多html標記。 。 json看起來像這樣
{"id":"904186342276664","email":"ferrylefef@yahoo.co.uk","first_name":"Taak","gender":"male","last_name":"Sheeen","link":"https://www.facebook.com/app_scoped_user_id/904183432276664/","locale":"en_GB","name":"Tadadadn","timezone":1,"updated_time":"2014-06-15T12:52:45+0000","verified":true}
修復查詢部分:
$sql = mysql_query("SELECT * FROM user WHERE {$_GET['id']}");
或另一種方式:
$sql = mysql_query("SELECT * FROM user WHERE ". $_GET['id']);
那么在ajax中使用dataType
總是更好
$.ajax({
url: "php.php",
type: "POST",
data: {user: json},
dataType: "jsonp", // for cross domains or json for same domain
success: function(msg){
if(msg === 1){
console.log('It exists ' + response.id );
} else{
console.log('not exists ' + response.id );
}
}
})
});
$jsonDecoded
在PHP的哪里分配? 看起來還沒分配給我。
我想你的意思是說:
$obj = json_decode($json, true);
$user_info = $obj['id'];
而且您的SELECT毫無意義。 您在POST期間引用的$_GET
。 也許您是想說:
$sql = mysql_query("SELECT * FROM user WHERE id = {$user_info}");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.