You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AJAX返回空数组排查:PHP项目数据库数据无法展示问题

问题分析与解决方案

核心问题

  1. PHP端无法正确序列化数据库结果集:getData.php中查询返回的是mysqli_result对象,直接传入json_encode会导致序列化失败,返回空数组/对象。
  2. 前端未正确解析JSON响应:AJAX成功回调中没有解析JSON字符串,直接使用原始响应文本。
  3. DOM元素创建语法错误:使用了HTML转义字符&lt;而非实际的标签<,导致无法创建表格行。
  4. 前后端数据键名不匹配:前端代码中引用了appointmentsData等不存在的键,与后端返回的键名不一致。

修复步骤

1. 修复PHP数据查询与序列化(getData.php)

将数据库结果集转换为可序列化的关联数组,并调整返回的键名以匹配前端期望:

<?php
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

session_start();
include "config.php";

$selected_date = $_POST['selected_date'];
$user_id = $_SESSION['user_id'];

// 获取预约数据的函数
function getAppointments($user_id, $selected_date) {
    global $conn;
    $stmt = $conn->prepare("SELECT * FROM appointments WHERE user_id = ? AND appointment_date = ?");
    // user_id是整数类型,用"i",日期是字符串用"s"
    $stmt->bind_param("is", $user_id, $selected_date);
    $stmt->execute();
    if ($stmt->error) {
        die("Query failed: " . $stmt->error);
    }
    $result = $stmt->get_result();
    // 将结果集转换为关联数组
    return $result->fetch_all(MYSQLI_ASSOC);
}

// 获取先兆症状数据的函数
function getAuras($user_id, $selected_date) {
    global $conn;
    $stmt = $conn->prepare("SELECT * FROM auras WHERE user_id = ? AND aura_date = ?");
    $stmt->bind_param("is", $user_id, $selected_date);
    $stmt->execute();
    $result = $stmt->get_result();
    return $result->fetch_all(MYSQLI_ASSOC);
}

// 获取用药数据的函数
function getMedications($user_id, $selected_date) {
    global $conn;
    $stmt = $conn->prepare("SELECT * FROM medications WHERE user_id = ? AND date_taken = ?");
    $stmt->bind_param("is", $user_id, $selected_date);
    $stmt->execute();
    $result = $stmt->get_result();
    return $result->fetch_all(MYSQLI_ASSOC);
}

// 获取情绪数据的函数
function getMood($user_id, $selected_date) {
    global $conn;
    $stmt = $conn->prepare("SELECT * FROM mood WHERE user_id = ? AND mood_date = ?");
    $stmt->bind_param("is", $user_id, $selected_date);
    $stmt->execute();
    $result = $stmt->get_result();
    return $result->fetch_all(MYSQLI_ASSOC);
}

// 获取癫痫发作数据的函数
function getSeizures($user_id, $selected_date) {
    global $conn;
    $stmt = $conn->prepare("SELECT * FROM seizures WHERE user_id = ? AND seizure_date = ?");
    $stmt->bind_param("is", $user_id, $selected_date);
    $stmt->execute();
    $result = $stmt->get_result();
    return $result->fetch_all(MYSQLI_ASSOC);
}

$appointments = getAppointments($user_id, $selected_date);
$auras = getAuras($user_id, $selected_date);
$medications = getMedications($user_id, $selected_date);
$mood = getMood($user_id, $selected_date);
$seizures = getSeizures($user_id, $selected_date);

// 调整键名以匹配前端代码中的引用
$data = array(
    'appointmentsData' => $appointments,
    'aurasData' => $auras,
    'medicationsData' => $medications,
    'moodData' => $mood,
    'seizuresData' => $seizures
);

header('Content-Type: application/json');
echo json_encode($data);
?>

2. 修复前端AJAX与DOM操作(diary.php中的

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 15:47:36