我想将查询结果放入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++;
}
}
感谢您的帮助
答案 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
作为回调。