php - 在 PHP 正确处理的数据上,Ajax 响应为空
问题描述
我有一个对服务器上的 php 文件执行 POST 调用的表单;请求已正确处理,但当我尝试处理它时,它显示为空值。这是我的 php 片段:
<?php
header('Access-Control-Allow-Origin: *');
require_once 'access.php';
//connection to db
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (mysqli_connect_errno()) { //verify connection
echo "Error to connect to DBMS: ".mysqli_connect_error(); //notify error
exit(); //do nothing else
}
//Take user team request
$teamchoice = $_POST['team'];
//retrieving all people of that team
$query = "SELECT * FROM pokecods WHERE team = '$teamchoice'";
$result = $mysqli->query($query);
if ($result->num_rows > 0)
echo json_encode($result);
else
echo 'Oops, something went wrong';
$result->close();
$mysqli->close();
?>
查询正确执行,因为结果我有一个 json 对象(数据库中只有一个与查询匹配的对象),但是当我尝试处理这个对象时,我有这个结果 :
这是我的 jQuery 代码:
$.post(post_url, post_data)
.done( function(response) {
var json = JSON.parse(response);
console.log(json);
})
.fail( function() {
alert("The AJAX request failed!");
});
为了正确处理我的对象,我必须做什么?
解决方案
执行查询后忘记获取结果。使用fetch_all获取结果,然后传递给json_encode
.
更新代码:
if ($result->num_rows > 0) {
$records = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($records);
} else {
echo 'Oops, something went wrong';
}
推荐阅读
- python - Discord 同步处理命令并立即回复每个人。(使用不和谐.py)
- r - R,将数据框中的字符串更改为二进制值
- ruby-on-rails - 调试时传递参数
- json - BigDecimal 到 Double 以添加到 JSON 对象
- javascript - Javascript在for循环中使用值作为对象键?
- android - 在列的可用空间中拉伸小部件
- vue.js - v-on 处理程序中的 Vue 错误:“TypeError:无法读取 null 的属性”
- javascript - 如何使用 React 按钮组件向下滚动页面?
- python - 循环 json 数据并合并 df 数据
- google-cloud-platform - 如何使用 Colab 在 Google Drive 和 Google Cloud Storage 之间复制大文件