处理来自PHP的返回JSON数据 - AJAX JQUERY

时间:2015-09-21 10:24:37

标签: php jquery json ajax

我一直在尝试从php中检索json数据。我有一个HTML表打开一个模态。我通过ajax post传递行中数据的id,在php文件中我计划使用传递的id在我的数据库中查找相关行,并在模态中显示所有信息。目前我一直试图将id返回以及一些临时值。

使用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@hotmail.co.uk";



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

我尝试使用成功调用函数但没有运气。有谁能指出我正确的方向?

1 个答案:

答案 0 :(得分: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); 
 });

即使没有设置status,也可以考虑使用HTTP状态代码或在JSON中返回$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'],
   ]);
}