У меня есть 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 }) }}',
....
Я не могу опубликовать всю таблицу, потому что это действительно длинный код ...