将PHP请求的结果放在JSON数组中并在AJAX中解码

时间:2016-08-27 12:07:22

标签: php json ajax

我想将查询结果放入JSON数组中,然后在Ajax成功函数中对其进行解码,其中我将有一个变量数组user.id,user.name和user.age。 我怎样才能做到这一点? 这是我的php结果

    $sql = "SELECT * FROM users ORDER BY id ";
    $result = $conn->query($sql);      
   $totalUsers = $result->num_rows;
   if ($result->num_rows > 0) {
        $counter=0;
        while($row_rs= mysqli_fetch_assoc($result)) {
            $userId = $row_rs['id'];
            $userName= $row_rs['name'];
            $age= $row_rs['age'];

            $counter++;
        }
   }

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

//Get your data
$sql = "SELECT * FROM users ORDER BY id ";
$result = $conn->query($sql);
$totalUsers = $result->num_rows;
$row_rs= mysqli_fetch_assoc($result);

// Set JSON Headers
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

// Output result as JSON (Sends status 200)
echo json_encode($row_rs);

答案 1 :(得分:0)

以下是您需要为多个用户返回$ users数组的PHP代码

 <?php
  $sql = "SELECT * FROM users ORDER BY id ";
   $result = $conn->query($sql);      
   $totalUsers = $result->num_rows;
    $users=array();
    if ($result->num_rows > 0) {
     $counter=0;
     while($row_rs= mysqli_fetch_assoc($result)) {
        $users[$counter]['userId'] = $row_rs['id'];
        $users[$counter]['userName']= $row_rs['name'];
        $users[$counter]['age']= $row_rs['age'];

        $counter++;
     }
   }
   return json_encode(array('data'=>$users,'totalUsers'=>$totalUsers))
  ?>

以下是ajax请求的脚本

 $.get('url' , function(data){
       console.log(data);
    // you can access totalUsers like this -: data.totalUsers
     alert(data.totalUsers);
       $.each(data.data, function(key, value)
        {
           alert(JSON.stringify(value);
          // Now you can use value.userID , value.Username , value.age
       });
    });

答案 2 :(得分:0)

服务器侧

在迭代结果之前,您需要创建一个空array,如下所示:

$myResults = array();

然后,在迭代内部,您需要向array添加新元素,如下所示:

$myResults[]= array(
    "userId" => $rows_rs["id"], 
    "userName" => $rows_rs["name"], 
    "age" => $rows_rs["age"]
);

这是您从服务器端echo所需的内容:

echo json_encode($myResults);

<强>客户端

function callback(response) {
    var myObject = $.parseJSON(response);
    //whatever
}

然后使用此callback作为回调。