Почему DataTable отображает только первую строку массива

Я использую DataTable с datatables.net. Я использую Ajax и PHP для динамического заполнения DataTable. Проблема заключается в том, что в DataTable отображается только первая строка из ответа/массива Ajax. Я провел два дня в Интернете, не найдя решения своей задачи.

Как вы можете видеть ниже, я получаю ответ Ajax, который я просматриваю, чтобы создать массив с именем «displayresult». Массив заполняется с помощью array.push. Значения массива используются для заполнения DataTable. Как уже упоминалось, в DataTable отображается только первая строка массива.

Массив выглядит так:

[{"1":"201909074","2":"Джим классный парень","4":"2019-06-05"},

{"1":"201906753","2":"Джейн классная девушка","4":"30 апреля 2019"},

{"1":"201906648","2":"Фофо - крутая собака","4":"2019-04-26"}]

  $.ajax({
  url: '../../core/search/get_general_search.php', 
  data:{sok:sok}, 
  dataType: 'json', 
    success: function(response)
  {
     console.info(JSON.stringify(response));
   var searchResult = response;
   var displayresult = [];


    for (var i in searchResult)
    {
      var row = searchResult[i];

      var reference = row[1];
      var heading = row[2];
      var documentDate = row[4];


     displayresult.push(reference, heading, documentDate);
    }   

    $('#result_table').DataTable({
      "responsive": true,
      "searching": false, 
      "aaData": [displayresult]
        });     
  }
}); //end ajax

Вы пробовали пройти response прямо в aaData как "aaData": [response] ??

Rohit Mittal 30.07.2019 15:23

Да, это действительно работает с "aaData": response. Без скобок. Необходимо добавить данные в новый массив из-за сортировки данных перед их представлением.

objelland 30.07.2019 15:42
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
2
314
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно поместить объект в массив, а не значения

 displayresult.push({reference, heading, documentDate});
 $('#result_table').DataTable({
  "responsive": true,
  "searching": false, 
  "aaData": displayresult
    });     
 }

Спасибо, что разъяснили это! Теперь он работает, как ожидалось

objelland 30.07.2019 15:40

Другие вопросы по теме