javascript - 从 php/json 转换时,JavaScript 中只出现一个结果
问题描述
我有一个 php 查询,并已使用 json_encode 设置为 json。我已经使用 echo 打印了结果,执行此操作时,查询的每个结果都以 json 格式显示。
然后我想转换信息,以便我可以在 JavaScript 中使用它。我只是简单地回显了结果,但查询中只有一个结果似乎被忽略了。
这是我的php代码
$sql = mysqli_query($con,"SELECT appointment_time, appointment_date FROM Appointments");
if (!$sql) {
die('Invalid query: ' . mysqli_error());
}
$appointments = array();
while ($row = mysqli_fetch_assoc($sql)) {
$appointment[] = $appointments;
foreach ($appointment as $appointments) {
$appointments = array('title' => 'Unavailable', 'start' => $row['appointment_date']. 'T' .$row['appointment_time'].'+08:00');
}
$json = json_encode($appointments);
echo $json;
}
这是我的 JavaScript
events:[
<?php echo $json;?> //'2018-12-12T15:00+08:00'
//},
//{
//title: '',
//start: '' //'2018-12-12T12:00+08.00'
]
解决方案
你有两个循环。while 循环:它可以访问结果的每一行,并且每次都使用变量 $row 遍历它们。您正在将此 $row 添加到您的约会数组中。
然后你有你的 $appointments 上的 foreach 循环(这是递增的,因为 $row 每次都通过较早的 while 循环添加)。在这个 foreach 循环中,您将每个约会分配到同一个变量 $row (由您的外部 while 循环使用)。
所以存在变量命名冲突。如果您打算打印查询结果,可以执行以下操作。
while ($row = mysqli_fetch_assoc($sql)) {
echo json_encode(array(
'title' => 'Unavailable',
'start' => $row['appointment_date']. 'T' .$row['appointment_time'].'+08:00'
));
}
如果您打算获得 json 结果。
$json = json_encode(mysqli_fetch_all($sql,MYSQLI_ASSOC));
推荐阅读
- html - IE 搜索文本功能不适用于从 AJAX 生成的代码
- python - 使用 PIL/Pillow 制作 GIF
- java - 直接在其他 json 对象中获取特定的嵌套 json 对象
- validation - 如何在 Blazor 中实现自定义验证
- kubernetes - 是否有任何 API 或编程逻辑来获取 kubernetes 集群中节点的容量?
- rest - DRY 或 DAMP - API 自动化测试脚本中哪一个更高效?
- c++ - 将 C++ 流操纵器链接到单个变量中
- android - 如何禁用Android应用程序的远程调试
- python - 将路径表示为彩色图像
- java - JAVA:如何使用流从列表中删除重复项