Получить данные из файла JSON в JQuery Datatables - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь добавить данные для добавления из файла JSON, сгенерированного из сценария Django.

Это формат файла JSON:

[
{
    "6": "yo1",
    "1": "2019-04-04",
    "4": "yo1",
    "3": "yo1",
    "2": "yo1",
    "5": "yo1"
},
{
    "6": "yo2",
    "1": "2019-04-08",
    "4": "yo2",
    "3": "yo2",
    "2": "yo2",
    "5": "yo2"
}
] 

JavaScript:

let url = `/api/?site=${filters.site_filter}&sd=${filters.sd}&ed=${filters.ed}&report_type=yo`;

 $.getJSON(url, function(data) {data.forEach(d => {
        console.log(data);
        $('#video_data').DataTable( {
            "ajax": allData
            columns: [
            { title: "1" },
            { title: "2" },
            { title: "3" },
            { title: "4" },
            { title: "5" },
            { title: "6" }
            ]
        } );
    })
})

HTML код:

<table border="1" id="video_data">
            <thead>
                <tr>
                    <th>Date</th>
                    <th>Site</th>
                    <th>Page Type</th>
                    <th>Device Type</th>
                    <th>Video Player Name</th>
                    <th>AB Test</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td></td>
                </tr>
            </tbody>
        </table>

Результат этого дает мне только сообщение Loading, а также я получаю эту ошибку каждый раз, когда загружаю страницу: DataTables warning: table id=video_data - Cannot reinitialise DataTable. For more information about this error, please see http://datatables.net/tn/3

Я не уверен, что я не так делаю?

1 Ответ

0 голосов
/ 11 апреля 2019

Я вижу несколько вещей, которые выглядят неправильно при этом.

Первый параметр .getJSON должен быть путем к файлу json.Судя по всему, allData не похоже на путь.

Кроме того, вы циклически просматриваете каждый элемент из ответа getJson и снова и снова инициализируете свою таблицу данных.

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

var url = 'path/to/json/file.json';
$.getJSON(url, function(data) {
  $('#video_data').DataTable({
    data: data
  });
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...