[英]Datatables warning table id=datatables-example - invalid json response
[英]DataTables warning: table id=example - Invalid JSON response
我搜索了這個問題的答案,但沒有人幫忙。 我在標題中提到了錯誤。
這是我的ajax代碼:
var table = $('#example').DataTable( {
"ajax": "<?php echo $root; ?>ajax/order.php",
"processing": true,
"serverSide": true,
"ordering": false,
"searching": true,
"columns": [
{ "data": "order_no" },
{ "data": "country" },
{ "data": "name" },
{ "data": "date","className": "align-center" },
{ "data": "subtotal","className": "align-right" },
{ "data": "dileveryAmt","className": "align-right" },
{ "data": "totalAmt","className": "align-right" },
{ "data": "paymentMode","className": "align-center" },
{ "data": "payment","className": "align-center" },
{ "data": null,"defaultContent": "<button id='view' class='btn btn-small btn-info'>View</button><button id='delete' class='btn btn-small btn-danger'>Delete</button>","className": "align-center" }
]
} )
我驗證了來自服務器的響應(如開發人員工具中所示),並顯示為有效JSON。 但它沒有反映在頁面中。
我的HTML代碼是
<table id="example" class="display table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>Order No</th>
<th>Country</th>
<th>Customer</th>
<th>Date</th>
<th>Sub Total</th>
<th>Delivery Charge</th>
<th>Total</th>
<th>Payment Mode</th>
<th>Payment</th>
<th>Action</th>
</tr>
</thead>
UPDATE
來自服務器的響應(有很多條目。我以一個例子顯示):
"data": [
{
"id": "183",
"customer_id": "183",
"subtotal": "0.00",
"totalAmt": "0.00",
"dileveryAmt": "0.00",
"date": "18/02/2015",
"midnightdelivery": "0",
"delivery_date": "2015-02-19",
"message_on_cake": "",
"special_instruction": "",
"payment": "<div class='label label-warning'>Pending</div>",
"delivery": "0",
"created": "2015-02-18 10:58:29",
"ip": "",
"payment_mode": "",
"first_name": "Ganesh",
"last_name": "Salunkhe",
"email": "g@s.com",
"address": "",
"flat_no": "k",
"building_name": "k",
"street": "k",
"area": "k",
"landmark": "k",
"city": "mumbai",
"country": "India",
"state": "maharashtra",
"contact_no": "7666902899",
"name": "Ganesh Salunkhe",
"order_no": "1181"
},
任何幫助將不勝感激。
我為此苦苦掙扎。 在我RTM之后https://www.datatables.net/examples/ajax/custom_data_flat.html我明白了。
ajax: {
url: "data/objects_root_array.txt", <-- notice url and the link
dataSrc: "" <-- if you are just going to json_encode the result from the db. it will handle a flat string
}
ajax調用是以某種方式完成的。 不僅僅是ajax。 但是你需要在那里包含url和dataSrc變量。 在我用我的代碼完成后,一切正常。
看看這是否適合你。
var table = $('#example').DataTable( {
"ajax": {
url: "<?php echo $root; ?>ajax/order.php",
dataSrc : ""
},
"processing": true,
"serverSide": true,
"ordering": false,
"searching": true,
"columns": [
{ "data": "order_no" },
{ "data": "country" },
{ "data": "name" },
{ "data": "date","className": "align-center" },
{ "data": "subtotal","className": "align-right" },
{ "data": "dileveryAmt","className": "align-right" },
{ "data": "totalAmt","className": "align-right" },
{ "data": "paymentMode","className": "align-center" },
{ "data": "payment","className": "align-center" },
{ "data": null,"defaultContent": "<button id='view' class='btn btn-small btn-info'>View</button><button id='delete' class='btn btn-small btn-danger'>Delete</button>","className": "align-center" }
]
} )
認為問題是paymentMode
。 它在表定義中沒有下划線,在json中使用下划線( "payment_mode":
答案應如下所示:
{
"data": [
{
"id": "183",
"customer_id": "183",
"subtotal": "0.00",
"totalAmt": "0.00",
"dileveryAmt": "0.00",
"date": "18/02/2015",
"midnightdelivery": "0",
"delivery_date": "2015-02-19",
"message_on_cake": "",
"special_instruction": "",
"payment": "<div class='label label-warning'>Pending</div>",
"delivery": "0",
"created": "2015-02-18 10:58:29",
"ip": "",
"payment_mode": "",
"first_name": "Ganesh",
"last_name": "Salunkhe",
"email": "g@s.com",
"address": "",
"flat_no": "k",
"building_name": "k",
"street": "k",
"area": "k",
"landmark": "k",
"city": "mumbai",
"country": "India",
"state": "maharashtra",
"contact_no": "7666902899",
"name": "Ganesh Salunkhe",
"order_no": "1181"
}
]
}
請看這里: http : //json.parser.online.fr/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.