【发布时间】:2018-08-30 06:34:17
【问题描述】:
所以我正在为一个俱乐部设计一个网站的后端。您应该能够查看和编辑包含信息的表格。现在我只需要 2 张桌子。一份用于会员,一份用于俱乐部举办的活动。成员的东西完美无缺,所以我复制粘贴了代码,在这里和那里调整了一些小东西,并希望它也适用于活动。但它没有。而且我找不到我犯错的地方。
下面是用于显示成员表的 JQuery:
$(document).ready(function(){
$("#personen").click(function(){
$.ajax({
url: '/website/administrator/components/com_backend/Personen_AJAX.php',
success: function(data,status)
{
createTableByJqueryEach2(data);
},
async: true,
dataType: 'json'
});
});
});
function createTableByJqueryEach2(data)
{
var eTable="<table><thead><tr><th colspan='5'>Created by for loop</th></tr><tr><th>Titel</th><th>Vorname</th><th>Name</th><th>Unternehmen</th><th>Gruppe</th</tr></thead><tbody>"
$.each(data,function(index, row){
// eTable += "<tr>";
// eTable += "<td>"+(data)[i]['Titel']+"</td>";
// eTable += "<td>"+(data)[i]['Vorname']+"</td>";
// eTable += "<td>"+(data)[i]['Name']+"</td>";
// eTable += "<td>"+(data)[i]['Unternehmen']+"</td>";
// eTable += "<td>"+(data)[i]['Gruppe']+"</td>";
// eTable += "</tr>";
eTable += "<tr>";
$.each(row,function(key,value){
eTable += "<td>"+value+"</td>";
});
eTable += "</tr>";
});
eTable +="</tbody></table>";
$('#eachTable').html(eTable);
}
以及用于显示成员表的 PHP:
<?php
include($_SERVER['DOCUMENT_ROOT'].'/website/dbConnection.php');
function filterTable($searchquery)
{
$filter_Result = mysqli_query($GLOBALS['connect'], $searchquery);
return $filter_Result;
}
$searchquery = "SELECT Titel, Vorname, Nachname, Unternehmen, Gruppe FROM mitglieder";
$searchresult = filterTable($searchquery) or die("Table cant be displayed");
$data = mysqli_fetch_all($searchresult);
echo json_encode($data);
?>
这 2 段代码有效,但接下来的 2 段代码几乎完全相同。
现在是用于向我展示事件表的 JQuery:
$(document).ready(function(){
$("#anlaesse").click(function(){
$.ajax({
url: '/website/administrator/components/com_backend/Anlaesse_AJAX.php',
success: function(data1,status)
{
createTableByJqueryEach(data1);
},
async: true,
dataType: 'json'
});
});
});
function createTableByJqueryEach(data1)
{
var eTable="<table><thead><tr><th colspan='4'>Created by for loop</th></tr><tr><th>Datum</th><th>Typ</th><th>Referent</th><th>Thema</th</tr></thead><tbody>";
$.each(data1,function(index, row){
// eTable += "<tr>";
// eTable += "<td>"+(data1)[i]['Datum']+"</td>";
// eTable += "<td>"+(data1)[i]['Typ']+"</td>";
// eTable += "<td>"+(data1)[i]['Referent']+"</td>";
// eTable += "<td>"+(data1)[i]['Thema']+"</td>";
// eTable += "</tr>";
eTable += "<tr>";
$.each(row,function(key,value){
eTable += "<td>"+value+"</td>";
});
eTable += "</tr>";
});
eTable +="</tbody></table>";
$('#eachTable').html(eTable);
}
还有用于向我展示事件表的 PHP:
<?php
include($_SERVER['DOCUMENT_ROOT'].'/website/dbConnection.php');
function filterTable($searchquery)
{
$filter_Result = mysqli_query($GLOBALS['connect'], $searchquery);
return $filter_Result;
}
$searchquery = "SELECT Datum, Typ, Referent, Thema FROM events";
$searchresult = filterTable($searchquery) or die("Tabelle kann nicht angezeigt werden");
$data1 = mysqli_fetch_all($searchresult);
echo json_encode($data1);
?>
我在我的 JQuery 中为失败添加了一个参数,但为了更好的代码在此处删除了它。 2 个错误是“parsererror”和“SyntaxError: Unexpected end of JSON input”。
还有一些重要信息:
首先关闭我的会员表和活动表。我不得不审查第二个,以免泄露我工作/生活/等的地方。
当我在请求事件表后查看开发工具时,我得到的 JSON 响应是空的。当我请求成员表时,它是一个包含数据库中所有成员的数组。
关于现有的所有信息,我已经为这个问题工作了好几个小时。我需要第二双眼睛来查看我的代码并指出我做错了什么。
感谢您的帮助!
编辑:所以我在 $searchresult 和 $data1 之间输入了以下代码:
$array = array();
while($row = mysqli_fetch_assoc($searchresult)){
$array[] = $row;
}
echo '<pre>'; print_r($array); echo '</pre>';
它给了我以下数组:
【问题讨论】:
-
要检查的代码太多。你能发布相关的内容吗?
-
您认为控制台对第二个 ajax 请求的响应是什么?
-
@SougataBose HTML 仅用于为 Jquery 和 PHP 提供上下文。所以你可以放心地忽略它,除非你偶然发现,让我们说在 Jquery 代码中的一个 id 上,并想检查哪个 html 组件有那个 id。
-
@u_mulder 如果这就是您的意思,控制台不会给出任何错误。当我导航到网络并按 XHR 时,我可以看到 JSON 响应。成员请求的响应是一个包含数据库成员的数组。事件请求的响应为空。
-
我可以建议您考虑创建一个minimal reproducible example 吗?您甚至可能会在执行此操作时发现问题。花时间在您的问题上的人数与您发布的代码的复杂性成反比。
标签: javascript php jquery sql json