【发布时间】:2013-05-15 11:30:39
【问题描述】:
我有一个表,它通过 dataTables 填充来自 MySQL 表的信息。信息是通过 PHP 以 dataTables 期望信息的方式作为正确的 JSON 准备的。
我遇到的问题是表格不再加载信息。甚至恢复我的更改以使 JSON 数据不包含指向服务器描述的链接(通过 view.php)也不会改变任何内容。
该站点可以在这里找到:checkersthecat.com/status输出JSON信息的PHP可以在这里找到:checkersthecat.com/status/inc/json-servers.php
这里是 json-servers.php 的代码
<?php
$db = new PDO("mysql:host=localhost;dbname=mcstatus;charset=UTF8", "user", "pass");
$stmt = $db->prepare("SELECT ip, port, category, players, tries, description FROM clients");
$stmt->execute();
$servers = $stmt->fetchAll(PDO::FETCH_ASSOC);
$count = $stmt->rowCount();
$data = array(
"aaData" => array()
);
foreach ($servers as $item) {
$arr = array();
// Address
if (strlen($item['description']) == 0) {
if ($item['port'] != 25565) {
array_push($arr, $item['ip'] . ":" . $item['port']);
} else {
array_push($arr, $item['ip']);
}
} else {
if ($item['port'] != 25565) {
array_push($arr, "<a href='inc/view.php?ip=" . $item['ip'] . "'>" . $item['ip'] . ":" . $item['port'] . "</a>");
} else {
array_push($arr, "<a href='inc/view.php?ip=" . $item['ip'] . "'>" . $item['ip'] . "</a>");
}
}
// Category
array_push($arr, $item['category']);
// Status
if ($item['tries'] == 0) {
array_push($arr, "Up");
} else {
array_push($arr, "Down (" . $item['tries'] . ")");
}
// Players
if ($item['players'] == -1) {
array_push($arr, "?");
} else {
array_push($arr, $item['players']);
}
array_push($data['aaData'], $arr);
}
header("Content-type: application/json");
echo json_encode($data);
?>
真正初始化和设置dataTable的javascript的sn-p在这里:
// init load of table
serverTable = $("#servers").dataTable({
"bProcessing": true,
"bStateSave": true,
"sPaginationType": "two_button",
"sAjaxSource": "http://checkersthecat.com/status/inc/json-servers.php"
});
它确实有效,我更改了与 jQuery 模态对话框表单相关的 javascript 中的描述长度相关的一个小项目,我刷新了页面,突然 dataTables 不再加载我的 JSON 信息。
我完全不知道为什么它不起作用。即使在没有 JSON 数据中的超链接和以前的描述限制的情况下恢复到我的旧代码也没有什么区别。它仍然给了我无尽的“处理”和“加载”。当我尝试搜索时,它只是说“没有可用的数据”,这很荒谬,因为 JSON 信息就在 URL 中并且是有效的。
我已经尝试使用 firebug 调试 javascript 和 PHP 并分别打开错误报告,但据我所知,这一切显然没有任何问题。
非常感谢任何帮助,因为这让我把头发扯掉了。如果您可能需要任何其他详细信息,请告诉我。
【问题讨论】:
-
并在我发布此内容后(暂时)确定它是否有效。世界上有什么?
-
发布解决方案/回答您自己的问题!
-
我不知道是什么使它起作用。我刚刚发布了这个,返回并刷新页面并填充了表格。我会尽可能回答我的问题,但我不知道问题是什么。因为它没有工作一个小时。
-
网络问题? javascript被缓存了?服务器问题?如果您不检查控制台以查看失败时失败的原因,则无法说明问题所在。
-
就是这样。我查看了控制台是否有任何错误,并尝试分离和隔离我认为可能有问题的 javascript 部分。没什么,可能是网络问题,但让我恼火的是我可以随时访问 JSON PHP 文件并获取信息。
标签: php jquery datatables