2015-09-21 61 views
1

我一直在嘗試從php中檢索json數據。我有一個打開模式的HTML表格。我通過ajax post在行中傳遞數據的id,在php文件中,我打算使用傳遞的id在數據庫中查找相關行,並將所有信息返回到顯式模式中。目前,我一直試圖僅僅返回id以及一些臨時值。處理從PHP返回的JSON數據 - AJAX JQUERY

的Javascript:

var id = recipient; 
console.log("id: " + id); 
var idObject = { id: id } 

$.ajax({ 
url: "json.php", 
type: "POST", 
data: idObject, 
dataType: "json", 
contentType: "application/json"  
}) 

json.php:

<?php 


    $id = $_POST["id"]; 
    $firstName = "firstname"; 
    $lastName = "lastname"; 
    $email = "[email protected]"; 



    if(isset($id)){ 
     $data = array(
      "id"  => $id, 
      "firstName" => $firstName, 
      "lastName" => $lastName, 
      "email"  => $email 
     ); 
     echo json_encode($data); 
    } 
?> 

我使用成功時調用的函數,但沒有任何運氣嘗試。任何人都可以請指點我正確的方向?

+0

如何是JavaScript/jQuery的被解僱 - 說不定張貼一些更多的代碼。 另外,在你的jQuery中,你需要處理AJAX調用的返回。 – foxbeefly

+0

如果您在jjax成功獲取json,那麼問題是什麼\ –

+0

如果您在ajax調用上執行成功,那麼您得到的錯誤是什麼,然後獲得正確的數據就會發出警報。 –

回答

1

試試這個:

$.ajax({ 
url: "json.php", 
type: "POST", 
data: {id: id}, 
dataType: "json", 
contentType: "application/json"  
}).success(function(data){ 
    //data is now a JSON object containing data 
    //you outputted from PHP, example: 
    $('#form-email').val(data.email); 
}); 

也可以考慮使用HTTP狀態代碼或在您的JSON返回status場即使沒有$id集,讓你有一致的響應。

實施例(使用PHP 5.4+短數組語法)

if(isset($id)) 
{ 
    return json_encode([ 
     'status' => 'ok', 
     'errors' => [], 
     //(rest of data) 
    ]); 
} 
else 
{ 
    return json_encode([ 
     'status' => 'error', 
     'errors' => ['no id given'], 
    ]); 
} 
+1

可能值得在返回狀態的示例中添加PHP 5.4+子句。你會以低票結果,因爲「它不起作用!」當有人發現這一點,並運行5.3什麼的。 – MrMarlow

+0

@MrMarlow好點:) – ex3v