我有一個表通過dataTables填充來自MySQL表的信息。這些信息是通過PHP以數據表所期望的方式準備好的JSON準備的。jQuery dataTables無法加載AJAX 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);
?>
JavaScript片段,實際上初始化並設置數據表是在這裏:
// init load of table
serverTable = $("#servers").dataTable({
"bProcessing": true,
"bStateSave": true,
"sPaginationType": "two_button",
"sAjaxSource": "http://checkersthecat.com/status/inc/json-servers.php"
});
它的字面的工作,我換一個在JavaScript中涉及到一個jQuery模式對話框的描述長度的小項目,我刷新頁面,突然dataTables不再加載我的JSON信息。
我完全喪失了爲什麼它不起作用。即使恢復到我以前的代碼中沒有JSON數據和先前描述限制中的超鏈接也沒有什麼區別。它仍然給我一個無盡的「處理」和「加載」。當我嘗試搜索時,它只是說「沒有可用的數據」,這是可笑的,因爲JSON信息就在URL上並且是有效的。
我試過調試JavaScript和PHP與螢火蟲和分別打開錯誤報告,但顯然沒有任何錯誤,據我所知。
任何幫助非常感謝,因爲這讓我把我的頭髮撕掉。如果您還有其他需要的細節,請告訴我。
然後去圖(暫定)工作後我發佈這個。世界上有什麼? – Battleroid
發佈解決方案/回答你自己的問題! –
我不知道是什麼讓它工作。我剛剛發佈了這個消息,回去刷新頁面,桌子被填充。我會盡可能回答我的問題,但我不知道問題是什麼。因爲它不能在一個堅實的小時內工作。 – Battleroid