Как я могу перерисовать свои данные с новыми данными после ajax успеха? - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть Ajax вызов, который при успехе выводит меня json данные:

success : function (data) {
alert(data);

Выход data равен

{
  "draw": 1,
  "recordsTotal": 570,
  "recordsFiltered": 570,
  "data": [
    [
      "id":536,
      "name":"Accountant",
      "city":"Tokyo",
      "timestamp":"11.02.2020"
    ],
    [
      "id":537,
      "name":"Friend",
      "city":"Havanna",
      "timestamp":"11.02.2020"
    ]
  ]
}

У меня есть дата данных уже на моей странице. И я хочу теперь, после успеха ajax, перезагрузить таблицу с новыми данными.

ПРИМЕЧАНИЕ: json имеет только 2 записи, но важно, чтобы общее количество записей отображалось как 570

Это мой подход:

success : function (data) {

  var table =  $('.table').DataTable();

  table.clear();
  table.destroy();
  table.rows.add(JSON.parse(data));
  table.draw();

Результатом является пустой набор данных без данных.

Это функция, которая создает данные:

public function getJson($fileName,$length) {

    $file = 'files/'.$fileName.'.json';

    $input = file_get_contents($file);
    $array = json_decode($input);

    foreach ($array as $key => $value) {
      if($key == "data"){
        $new = array_slice($value, 0, $length);
      }
    }

    $array->data = $new;
    $data = json_encode($array);
    return new Response($data);

И это исходный набор данных:

  var table = $('.table').DataTable({
     "serverSide": true,
     "ajax": '{{ path('json', { fileName: output.fileName }) }}',

....

Я не могу опубликовать всю таблицу, потому что это действительно длинный код ...

...