Datatables: возможно ли использовать Ajax для заполнения 2 столбцов и использовать другой способ для других столбцов? - PullRequest
0 голосов
/ 08 октября 2018

У меня есть таблица с информацией об отправке почты, я использую Smarty, движок PHP, для заполнения этой таблицы.

Я хочу добавить еще 2 столбца с коэффициентами открытия и кликов (из почтовых сообщений).Я использую API для получения этой информации в PHP, но поскольку API медленный, я сначала хочу загрузить обычные столбцы, а затем, когда он загружается, я хочу загрузить другие 2 столбца, возможно ли это каким-либо образом?

В принципе, могу ли я заполнить таблицу данных 5 столбцами, и когда это будет сделано, добавить еще 2 с помощью ajax?

Прямо сейчас я использую 1 вызов ajax, чтобы получить все.

1 Ответ

0 голосов
/ 09 октября 2018

Это определенно то, что вы можете сделать.Я имел большой успех, используя опцию столбцов при создании и заполнении моей таблицы.Я использую функцию buildTable, где я передаю результаты вызова AJAX, переменная здесь называется dataList, и использую объект для построения таблицы следующим образом.В этом примере значение для данных - это имя поля в переменной dataList, значение которого я хотел бы видеть в таблице.В вашем случае я бы ожидал, что dataList будет результатом вашей базы данных.

Обратите внимание, что и поля заголовка, и данные могут принимать функции или html в качестве входных данных, чтобы вы могли сделать вызов AJAX в этом поле или ввестиместозаполнитель div для последующего добавления результатов с использованием JQuery или чего угодно.

$("#table-main").DataTable({
        //options
        columns: [
            {
                data: "data1",
                title: "columnName"
            },
            {
                data: "data2",
                title: "columnName"

            },
            {
                data: "data3",
                title: "columnName"
            },
            {
                data: "<div id='ajax_result_holder'></div>",
                title: "columnName"
            },
            {
                data: function(row, type, set){
                      //make AJAX call, return result
                },
                title: "columnName"
            },
        ],
        data: dataList
});
...