0

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 でデバッグし、エラー報告をそれぞれオンにしてみましたが、私の知る限り、問題はないようです。

これにより髪の毛が引き裂かれたので、どんな助けも大歓迎です。他に必要な詳細がある場合は、お知らせください。

4

1 に答える 1

0

動作しますが、正確に何が問題だったのかはわかりません。

于 2013-05-21T15:17:25.093 に答える