簡體   English   中英

將json傳遞給php並獲得響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM