いくつかの行を取得してデータテーブルに移動する必要があるデータベースがあります。必要なものを照会し、データを 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文字列のフィールドをテーブルの行/列にどのようにマッピングするかをよりよく理解できれば、非常に役立ちます-それを説明していただければ、本当に感謝します!