簡體   English   中英

數據表無法獲得響應

[英]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.jsontest-data.json )。 test-array.json適用於test-array.json dataSrc: ""dataSrc: null ; test-data.jsondataSrc: "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);

在3v4l.org上看到這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM