[英]Datatables cant get response
我試圖用數據表顯示大學時間表。 我用datatable ajax發送請求。 但是隨着響應變得不確定。
服務器端代碼:我有時間表數組。
<?php
// File: schedule_ajax_return.php
$data = [
1 => [
"monday" => "Ағылшын тілі 1год группа 8К</br>Қонысбаева Айжан Әміржанқызы</br>203",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
2 => [
"monday" => "</br><br>",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
3 => [
"monday" => "</br><br>",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
4 => [
"monday" => "</br><br>",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
5 => [
"monday" => "</br><br>",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
];
echo json_encode($data);
然后我用echo json_encode($array);
將其作為json返回echo json_encode($array);
客戶端Im接受響應並在帶有列的列中顯示數據
var table = $('#schedule_by_group').DataTable({
select:true,
dom: 'Bfrtip',
ajax: {
"url": "schedule_ajax_return.php",
"dataSrc": "",
"data":{"group_id": group_id},
"type": "POST"
},
columns : [
{"data": "monday"},
{"data": "tuesday"},
{"data": "wednesday"},
{"data": "thursday"},
{"data": "friday"}
]
});
在數據表文檔中,我讀到我可以將數據作為數組數組或對象數組發送。 所以我發送它作為數組的數組,但它顯示未定義。
請參閱有關datatables.net上數據aaray位置的文檔
重點:
1)簡單的數據數組:
// ... dataSrc: '' // ...
2)具有數據屬性的對象-請注意,此處顯示的數據參數格式可用於簡化的DataTables初始化,因為data是 DataTables在源數據對象中查找的默認屬性 。
// ... dataSrc: 'data' // ...
您的JSON響應應為
[
{
"monday": "Ағылшын тілі 1год группа 8К</br>Қонысбаева Айжан Әміржанқызы</br>203",
"tuesday": "</br></br>",
"wednesday": "</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
},
{
"monday": "</br><br>",
"tuesday": "</br></br>",
"wednesday": "</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
},
{
"monday": "</br><br>",
"tuesday": "</br></br>",
"wednesday": "</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
},
{
"monday": "</br><br>",
"tuesday": "</br></br>",
"wednesday": "</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
},
{
"monday": "</br><br>",
"tuesday": "</br></br>",
"wednesday": "</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
}
]
使用dataSrc: "",
[ 在jsoneditoronline.org上在線瀏覽 ]
如果您的JSON具有這種結構
{
"data": [
{
"monday": "Ағылшын тілі 1год группа 8К</br>Қонысбаева Айжан Әміржанқызы</br>203",
"tuesday": "</br></br>",
"wednesday": "W</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
},
{
"monday": "</br><br>",
"tuesday": "</br></br>",
"wednesday": "</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
},
{
"monday": "</br><br>",
"tuesday": "</br></br>",
"wednesday": "W2</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
},
{
"monday": "</br><br>",
"tuesday": "</br></br>",
"wednesday": "</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
},
{
"monday": "</br><br>",
"tuesday": "</br></br>",
"wednesday": "</br></br>",
"thursday": "</br></br>",
"friday": "</br></br>"
}
]
}
您可以省略dataSrc: "",
因為將使用默認值"data"
。
[ 在jsoneditoronline.org上在線瀏覽 ]
我在CodeSandbox上舉了一個使用靜態JSON而不是PHP數組的示例 ,但是原理應該很清楚。 我制作了兩個JSON文件( test-array.json
和test-data.json
)。 test-array.json
適用於test-array.json
dataSrc: ""
或dataSrc: null
; 和test-data.json
與dataSrc: "data"
或dataSrc: undefined
。
但是您的PHP代碼創建了一個不同的結構,如3v4l.org中所示 ( 結構檢查 )。 PHP代碼[ 1 => [ '...' ] ]
創建一個關聯數組,而不是索引數組。 關聯數組是json_encoded到JSON對象,而不是我們需要的JSON數組。 為此,您必須在數組中省略鍵(盡管它們是數字)。 應該這樣做:
<?php
// File: schedule_ajax_return.php
$data = [
[
"monday" => "Ағылшын тілі 1год группа 8К</br>Қонысбаева Айжан Әміржанқызы</br>203",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
[
"monday" => "</br><br>",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
[
"monday" => "</br><br>",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
[
"monday" => "</br><br>",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
[
"monday" => "</br><br>",
"tuesday" => "</br></br>",
"wednesday" => "</br></br>",
"thursday" => "</br></br>",
"friday" => "</br></br>",
],
];
echo json_encode($data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.