нумерация страниц на стороне сервера не работает (без изменения URL) - PullRequest
0 голосов
/ 01 октября 2018

У меня есть таблица данных, для которой мой jquery выглядит следующим образом:

$('#example').DataTable({
    "lengthMenu": [[10,15,20,25,-1], [10,15,20,25,'All']],
    "processing": true,
    "serverSide": true,
    ajax: {
        url: 'url2',
        dataSrc: 'data'
    },
    columns: [
        { data: 'column1' },
        { data: 'column2' },
        { data: 'column3' },
        { data: 'column4' },
        { data: 'column5' },
        { data: 'column6' }
    ]
}); 

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

, например.если есть 100 строк, ссылки генерируются 1-10, но все 100 записей отображаются на самой первой странице.

Я уже говорил,
https://datatables.net/examples/data_sources/server_side

что я тут не так делаю?
Спасибо за ваши предложения

Код на стороне сервера -

$total_records = $this->model2->getTotal();

$query['results'] = $this->model1->get_Data();


$data = array('data' => $query['results'],
                                "draw" =>  (isset($_REQUEST["draw"]) ? $_REQUEST["draw"] : 0),
                                "recordsTotal" =>  $total_records,
                                "recordsFiltered" => $total_records
                                 );
echo json_encode($data);  

Я думаю, я знаю, что я делаю неправильно, когда я печатаю $ _GET в моем php-коде, он оказывается пустым.Но он должен иметь предел и смещение.Как отправить смещение лимита в $ _GET?

Ответы [ 2 ]

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

Вот как должен выглядеть ваш server.php.Думаю, что вам не хватает нескольких строк кода:

  <?php
    $table = 'employees';
    $primaryKey = 'id'; // Table's primary key

    $columns = array(
        array( 'db' => 'id', 'dt' => 0 ),
        array( 'db' => 'first_name', 'dt' => 1 ),
        array( 'db' => 'last_name',  'dt' => 2 ),
        array( 'db' => 'position',   'dt' => 3 ),
        array( 'db' => 'date',     'dt' => 4 ),
         array( 'db' => 'updated',     'dt' => 5 ),
    );

    $sql_details = array(
        'user' => 'username',
        'pass' => 'password',
        'db'   => 'database',
        'host' => 'localhost'
    );

    require( 'ssp.class.php' );

    echo json_encode(
        SSP::simple( $_POST, $sql_details, $table, $primaryKey, $columns )
    );
    ?>

Конечный результат: https://databasetable -net.000webhostapp.com /

Это должно помочь вамнаправление.Думаю, что файл ssp.class.php, возможно, тоже нужно добавить, неуверенный, если он у вас есть (вы можете найти его на github).Надеюсь это поможет!

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

Вам нужно знать, сколько записей идет на странице и сколько записей.

Ваш SQL будет заканчиваться на OFFSET 30 LIMIT 10 (например).

Сначала получите общее количествоЗаписи.Страница будет проходить через ваш URL-адрес, и по умолчанию она будет равна странице 1.

Смещение рассчитывается следующим образом (пример, страница 3):

$totalPages = ceil($totalRecords / $numPerPage); // round up the way.
$offset = ($page * $numPerPage) - $numPerPage; // (3 * 10 = 30) - 10 = offset 20

Поэтому ваш SQL будет захватывать записи сOFFSET 20 LIMIT 10

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