1

いくつかの行を取得してデータテーブルに移動する必要があるデータベースがあります。必要なものを照会し、データを JSON として返すところまで到達しました。しかし、私はこれを乗り越えることができないようです。JSON が正しくフォーマットされていないというエラーが表示されます。結果に最も近いのは、JSON がまったく解析されていない、テーブルの独自の行にある文字です。私が間違っていることは明らかですか?それとも、完全に間違った方向に向かっていますか?

<script>
    $(document).ready(function() {
        $(function (){
            $("#logForm").submit(function() {
                console.log("Sending " + $('#logForm').serialize());
                var logRequest = $.ajax({
                    url: 'logQuery.php',
                    type: 'get',
                    datatype: 'auto',
                    data: $('#logForm').serialize(),
                    success: function(logResponse) {
                        $('#DataTables_Table_0').dataTable( {
                            "bDestroy": true,
                            "bProcessing": true,
                            "bServerSide": true,
                            "aaData": logResponse
                        });
                    }
                });
                logRequest.fail(function(jqXHR, textStatus) {
                    console.log( "Request failed: " + textStatus);
                });
                return false;
            });
        });
    });
</script>

json を生成する PHP は次のとおりです。

<?
$q = "SELECT src,dst,calldate,billsec,disposition FROM cdr WHERE calldate >= '$from' AND calldate <= '$to' ORDER BY calldate DESC LIMIT $limit";

$r = mysqli_query($con,$q);
$rowCount = mysqli_num_rows($r);
$n = 1;
while($row = mysqli_fetch_assoc($r)) {
    $resArr[] = $row;
    $n++;
}

echo json_encode($resArr);
?>

テーブルのhtmlは次のとおりです。

<table class="table table-striped table-condensed table-bordered bootstrap-datatable datatable dataTable" id="DataTables_Table_0" aria-describedby="DataTables_Table_0_info">
    <thead>
        <tr role="row">
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="From" style="width: 200px;">From</th>
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="To" style="width: 200px;">To</th>
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="Date" style="width: 153px;">Date/Time</th>
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="Duration" style="width: 157px;">Duration</th>
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="Disposition" style="width: 157px;">Disposition</th>
            <th class="sorting" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" aria-label="Detail" style="width: 317px;">Detail</th>
        </tr>
    </thead>
    <tbody role="alert" aria-live="polite" aria-relevant="all">
        <tr class="odd">
            <td class="center "></td>
            <td class="center "></td>
            <td class="center "></td>
            <td class="center "></td>
            <td class="center ">
                <span class="label label-success"></span>
            </td>
            <td class="center ">
                <a class="btn btn-success" href="#">
                    <i class="halflings-icon zoom-in halflings-icon"></i>           
                </a>
            </td>
        </tr>
        <tr class="even">
            <td class="center "></td>
            <td class="center "></td>
            <td class="center "></td>
            <td class="center "></td>
            <td class="center ">
                <span class="label"></span>
            </td>
            <td class="center ">
                <a class="btn btn-success" href="#">
                    <i class="halflings-icon zoom-in halflings-icon"></i>           
                </a>
            </td>
        </tr>
    </tbody>
</table>

生成される json の例を次に示します。

[{"src":"10062","dst":"18665551234","calldate":"2013-06-30 23:52:29","billsec":"14","disposition":"ANSWERED"},{"src":"10062","dst":"186655551234","calldate":"2013-06-30 23:51:53","billsec":"21","disposition":"ANSWERED"}]

データテーブルがJSON文字列のフィールドをテーブルの行/列にどのようにマッピングするかをよりよく理解できれば、非常に役立ちます-それを説明していただければ、本当に感謝します!

4

1 に答える 1

1

更新された Javascript

$(document).ready(function() {
    $(function (){
        $("#logForm").submit(function() {
            console.log("Sending " + $('#logForm').serialize());
            var logRequest = $.ajax({
                url: 'logQuery.php',
                type: 'get',
                datatype: 'auto',
                data: $('#logForm').serialize(),
                success: function(logResponse) {
                    var datableObj = $('#DataTables_Table_0').dataTable( {
                        "bDestroy": true,
                        "bProcessing": true,
                        "bRetrieve": true,
                        "bServerSide": true
                    });
                    datableObj.fnAddData(logResponse);
                }
            });
            logRequest.fail(function(jqXHR, textStatus) {
                console.log( "Request failed: " + textStatus);
            });
            return false;
        });
    });
 });

HTML の場合 TBODY タグの HTML を完全に削除して、リターン データを含む Ajax ページとして使用できます。THおよびTABLEタグで指定されたSTYLE属性を除く追加の属性を削除することもできます

于 2013-07-04T10:26:55.220 に答える