DataTable с обработкой на стороне сервера - PullRequest
0 голосов
/ 07 ноября 2018

Моя текущая проблема заключается в том, как правильно выполнить разбиение на страницы в DataTable, чтобы динамически генерировать lengthMenu (Showing 1 to 10 of 57 entries) и загружать данные только при нажатии следующей страницы.
Пока что мое понимание обработки на стороне сервера выглядит следующим образом:
Мой веб-сервис возвращает данные из базы данных, используя MySQL с ограничением и смещением в формате JSON .
Предполагая, что данные JSON верны, как я могу правильно разбить на страницы свою таблицу данных?

Ниже мой код:

var Table1 = $('#table').DataTable({
    "processing": true,
    "serverSide": true,
    "ajax": {
        "url": SomeWorkingURLS,
        "dataType": "jsonp"
    },

    "columns": [
        { "data": "Column1" },
        { "data": "Column2" },
        { "data": "Column3" },
        { "data": "Column4" }
    ],
    "columnDefs": [
        {
            "render": function ( data, type, row ) {
                return data + "<hr>" + row.data1;
            },
            "targets": 0
        },
        {
            "render": function ( data, type, row ) {
                return data + "<br>" + row.data2 ;
            },
            "targets": 1
        },
        {
            "render": function ( data, type, row ) {
                return  data ;
            },
            "targets": 2
        },
        {
            "render": function ( data, type, row ) {

                if (row.status == '2'){

                return '<button class="fas fa-edit btn-success" data-toggle="tooltip" title="Edit" value="' + data + '">Verify</button>'
                + ' <button class="fas fa-undo btn-danger" data-toggle="tooltip" title="Resend" value="' + data + '"> Authenticate</button>';

                }
                else{
                    return '<button class="fas fa-edit btn-success" data-toggle="tooltip" title="Edit" value="' + data + '">Authenticate</button>';
                }

            },
            "targets": 3
        },
        { "width": "14%", "targets": 0 },
        { "width": "60%", "targets": 1 },
        { "width": "10%", "targets": 2 },
        { "width": "16%", "targets": 3 , "class":"dt-center"},
    ],

    "destroy": true,
    "searching" :false

    });

    Table1.draw();
    $("select[name*='table_outbound_shipment_list']").removeClass('form-control');
    $("#table_outbound_shipment_list_length").remove();
    $('.form-control.form-control-sm').removeClass('form-control');


Мой веб-сервис всегда будет возвращать 10 строк данных (или я здесь не так?)
Моя ссылка: https://datatables.net/examples/data_sources/server_side

1 Ответ

0 голосов
/ 07 ноября 2018

Существуют библиотеки и вспомогательные классы для обработки на стороне сервера, которые помогают в подготовке ответа на стороне сервера.

Например, дистрибутив DataTables включает в себя ssp.class.php helper calss и пример скрипта , чтобы помочь в генерации ответа, если вы используете PHP.

В противном случае вы можете просмотреть отправленные параметры и разбить на страницы свои результаты на основе параметров запроса start и length.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...