MySQL テーブルからの情報を使用して、dataTables を介して入力されたテーブルがあります。情報は、dataTables が情報を期待する方法で適切な JSON として PHP を介して準備されます。
私が抱えている問題は、テーブルが情報をロードしなくなったことです。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 のスニペットは次のとおりです。
// 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の記述長に関連する小さな項目を1つ変更し、ページを更新すると、突然dataTablesがJSON情報をロードしなくなりました。
なぜそれがうまくいかないのか、私は完全に途方に暮れています。JSON データ内のハイパーリンクと以前の記述制限なしで私の古いコードに戻っても、違いはありません。それはまだ私に無限の「処理」と「ロード」を与えます。検索しようとすると、JSON情報がURLのすぐそばにあり有効であるため、「利用可能なデータがありません」と表示されるだけです。
javascript と PHP を firebug でデバッグし、エラー報告をそれぞれオンにしてみましたが、私の知る限り、問題はないようです。
これにより髪の毛が引き裂かれたので、どんな助けも大歓迎です。他に必要な詳細がある場合は、お知らせください。