Как я могу добавить нумерацию страниц в свой существующий код? - PullRequest
0 голосов
/ 09 января 2019

Я хотел бы добавить нумерацию страниц к моей существующей таблице, которую я запрограммировал с помощью ajax.

Я пробовал несколько решений для нумерации страниц, и ни одно из них не выглядит совместимым с моей существующей таблицей, которую я сейчас имею

Таблица в index.php

<div class="table-responsive">
  <table class="table table-bordered table-striped">
    <thead>
    <th width="5%"></th>
    <th width="10%">Serial No.</th>
    <th width="20%">Equipment Type</th>
    <th width="15%">Document Remarks</th>
    <th width="10%">Supplier</th>
    <th width="10%">Date In</th>
    <th width="10%">Customer</th>
    <th width="10%">Date Out</th>
    </thead>
    <tbody></tbody>
 </table>
</div>

Скрипт для отображения таблицы в index.php

<script>
    $(document).ready(function () {

        function fetch_data()
        {
            $.ajax({
                url: "select.php",
                method: "POST",
                dataType: "json",
                success: function (data)
                {
                    var html = '';
                    for (var count = 0; count < data.length; count++)
                    {
                        html += '<tr>';
                        html += '<td><input type="checkbox" value="' + 
data[count].id + '" id="' + data[count].id + '" data-serial_number="' + 
data[count].serial_number + '" data-equipment_type="' + 
data[count].equipment_type + '" data-document_remarks="' + 
data[count].document_remarks + '" data-supplier="' + data[count].supplier + 
'" data-date_scan="' + data[count].date_scan + '" data-customer="' + 
data[count].customer + '" data-date_out="' + data[count].date_out + '" 
class="check_box"  /></td>';
                        html += '<td>' + data[count].serial_number + '</td>';
                        html += '<td>' + data[count].equipment_type + '</td>';
                        html += '<td>' + data[count].document_remarks + '</td>';
                        html += '<td>' + data[count].supplier + '</td>';
                        html += '<td>' + data[count].date_scan + '</td>';
                        html += '<td>' + data[count].customer + '</td>';
                        html += '<td>' + data[count].date_out + '</td></tr>';
                    }
                $('tbody').html(html);
            }
        });
    }

    fetch_data();
 }
</script>

select.php

include('database_connection.php');

$query = "SELECT * FROM inventory ORDER BY id DESC";

$statement = $connect->prepare($query);

if ($statement->execute()) {
    while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
        $data[] = $row;
    }

    echo json_encode($data);
}
?>

1 Ответ

0 голосов
/ 09 января 2019

В вашей функции fetch_data() вам нужно будет включить данные страницы в ваш запрос POST:

  • limit должно быть количеством элементов, доступных для просмотра на странице
  • offset должно быть limit умножено на номер страницы (начиная с 0)

Ex. ниже будет запрашивать вторую страницу результатов (10 результатов на страницу)

$.ajax({
  url: "select.php",
  method: "POST",
  dataType: "json",
  data: {limit: 10, offset: 10},
  // etc.

В вашем PHP-скрипте вам нужно будет прочитать эти переменные и добавить их к вашему запросу:

$limit = $_POST['limit'];
$offset= $_POST['offset'];

$query = "SELECT * FROM inventory ORDER BY id DESC LIMIT = ? OFFSET= ?";
$statement = $connect->prepare($query);

if ($statement->execute([$limit, $offset])) {
    while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
        $data[] = $row;
    }

    echo json_encode($data);
}
...