php - 使用 AJAX 调用表
问题描述
因此,当用户单击图像时,我尝试显示表格。我走了很远,但我卡住了,似乎找不到我的错误。
当我打开控制台时,出现以下错误:
现在汉尼拔是我想在表格中显示的用户组的一部分。
我不会发布整个代码,因为它很多。我会尽量将其保留在相关部分。在这种情况下,我知道我进入了执行查询的 .php 文件。
由于我测试了查询,我知道它可以工作,所以我将在单独的 .php 文件中展示我如何将其返回:
$Guest_Invite_Data = filterTable($List_Guests_Query);
$Guest_Invite_Data_fetched = mysqli_fetch_array($Guest_Invite_Data);
echo json_encode($Guest_Invite_Data_fetched);
function filterTable($query)
{
$filter_Result = mysqli_query($GLOBALS['connect'], $query);
return $filter_Result;
}
这是我的 jQuery 的一部分:
success:function(Guest_Invite_Data_fetched) {
createTableByJqueryEach2(Guest_Invite_Data_fetched);
},
这是我的功能:
function createTableByJqueryEach2(data2){
var eTable2="<table><tr><th colspan='5'>Gäste einladen</th></tr><tr><th>Person</th></tr>"
$.each(data2,function(index2, row2){
eTable2 += "<tr>";
$.each(row2,function(key2,value2){
eTable2 += "<td>"+value2+"</td>";
});
eTable2 += "</tr>";
});
eTable2 +="</table>";
$('#guest_table').html(eTable2);
}
有人发现我的错误吗?
编辑:按要求输出的图片
编辑 2:按要求输出的文本
Array ( [0] => Hannibal [firstname] => Hannibal [1] => Lecter [lastname] => Lecter [2] => Cannibals Inc. [name] => Cannibals Inc. ) {"0":"Hannibal","firstname":"Hannibal","1":"Lecter","lastname":"Lecter","2":"Cannibals Inc.","name":"Cannibals Inc."}
解决方案
使用以下作为测试代码,我发现两件事:
一个。您正在从数据库中获取索引数组和关联数组。请注意您的 JSON 中的编号索引和值,然后是关联(列名)和值:
"0":"Hannibal","firstname":"Hannibal"
你应该只获取你想要的东西。例如,我会mysqli_fetch_assoc()
在这里使用 - 给我列名和值。
湾。您正在遍历数据,然后尝试遍历生成的文本:,这就是导致错误的原因。例如,row2
在第一次迭代中包含 value Hannibal
,所以你的第二个循环本质上是在尝试这样做:
$.each('Hannibal',function(key2,value2){...
Hannibal
,只是文本,不能像这样循环。它没有键或值。
对于这些数据,您只需要一个循环。这是证明这一点的测试代码:
var guest_data = {"0":"Hannibal","firstname":"Hannibal","1":"Lecter","lastname":"Lecter","2":"Cannibals Inc.","name":"Cannibals Inc."};
function createTableByJqueryEach2(data2){
var eTable2="<table><tr><th colspan='5'>Gäste einladen</th></tr><tr><th>Person</th></tr>"
$.each(data2,function(index2, row2){
eTable2 += "<tr>";
eTable2 += "<td>"+row2+"</td>";
eTable2 += "</tr>";
});
eTable2 +="</table>";
$('#guest_table').html(eTable2);
}
createTableByJqueryEach2(guest_data);
这导致以下结果:
<div id="guest_table">
<table>
<tbody>
<tr>
<th colspan="5">Gäste einladen</th>
</tr>
<tr>
<th>Person</th>
</tr>
<tr>
<td>Hannibal</td>
</tr>
<tr>
<td>Lecter</td>
</tr>
<tr>
<td>Cannibals Inc.</td>
</tr>
<tr>
<td>Hannibal</td>
</tr>
<tr>
<td>Lecter</td>
</tr>
<tr>
<td>Cannibals Inc.</td>
</tr>
</tbody>
</table>
</div>
您可能希望有不同的布局,这正是我为证明错误所做的。
推荐阅读
- javascript - Getting numerical elements from Odometer syntax in Cypress
- php - Laravel 8 - Decrypt cookies
- bash - Does `pgrep` have a way to exclude child processes?
- spring - 使用 Spring boot JPA 将数百万行从 CSV 保存到 Oracle DB
- python - 基于计数的用户和 IP 地址
- gradle - Gradle 添加本地文件作为依赖项
- flutter - 有没有办法在flutter中从channel.stream.listen内部异步刷新状态?
- python-3.x - Vimeo API - 我如何从评论 URL 中获取注释
- android - Flutter google_sign_in 登录失败,没有代码错误
- python - Conda env 与 venv / pyenv / virtualenv / 等