it-swarm.com.de

jQuery datatable serverseitige Paginierung funktioniert nicht

Ich versuche, die jquery datatables auf einem PHP-Projekt mithilfe der serverseitigen Verarbeitung zu implementieren, aber die Paginierung funktioniert nicht und ich habe keine Fehler in der Firebug-Konsole.

Die Seite ist einfach und unkompliziert, hier ist der HTML-Code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=Edge">

  <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/jq-2.2.3/dt-1.10.12/datatables.min.css"/>
  <script type="text/javascript" src="https://cdn.datatables.net/v/dt/jq-2.2.3/dt-1.10.12/datatables.min.js"></script>

</head>

<body>
<table class="table">
  <thead>
  <tr>
    <th col-data="item_id">Item Id</th>
    <th col-data="name">Name</th>
  </tr>
  </thead>
</table>

<script type="text/javascript">

  $(document).ready(function() {
    var dataTable = $('.table').DataTable( {
      "processing": true,
      "serverSide": true,
      "buttons": [],
      "order": [],
      "ajax":{
        url :"{{ url('stock_acc_get') }}", // json datasource
        type: "post",
      }
    } );

  } );
</script>

</body>

</html>

Hier sind die Daten auf dem Server (in der Firebug-Konsole angezeigt):

columns[0][data]        0
columns[0][name]    
columns[0][orderable]       true
columns[0][search][regex]   false
columns[0][search][value]   
columns[0][searchable]      true
columns[1][data]        1
columns[1][name]    
columns[1][orderable]       true
columns[1][search][regex]   false
columns[1][search][value]   
columns[1][searchable]      true
draw    1
length  10
search[regex]   false
search[value]   
start   0

Und hier ist die Json-Antwort vom Server:

{
  "draw":1,
  "recordsTotal":23,
  "recordsFiltered":10,
  "data": [
    ["100018","Test Acc"],["100019","Test Acc 2"],
    ["100020","Test Acc 3"],["5845645","Optional 1"],
    ["56456456","Optional 2"],["541515","Optional 3"],
    ["845812","Optional 4"],["103646","Belte Setesdal"],
    ["103647","Belte Setesdal"],["103681","Belte Sigdal-Eggedal"]
  ]
}

Die Seite ist so eingestellt, dass 10 Datensätze angezeigt werden. Die Gesamtzahl der Datensätze beträgt 23 und es werden keine Verknüpfungen erstellt, um zu den nächsten Seiten zu navigieren. Ich habe zum besseren Verständnis ein Foto angehängt, die Schaltflächen Weiter/Zurück sind deaktiviert und zeigen an, dass es sich nur um eine Seite handelt.

 enter image description here

5
Ceparu Stefan

recordsFiltered soll die Anzahl der Datensätze darstellen, die das Suchfeld (zusammen mit allen anderen) Filtern passieren, nicht die Anzahl der Datensätze auf der Seite.

Sie teilen DataTables mit, dass es nur 10 relevante Datensätze gibt. Es wird also nicht versucht, das Paging für die anderen 13 einzurichten.

Weitere Informationen finden Sie in der dritten DataTables FAQ post (in der serverseitigen Verarbeitungskategorie) oder auf der serverseitigen Verarbeitungs - Seite, die in diesem Beitrag verlinkt ist.

12
Chris H.

Hauptsächlich arbeitet recordsFiltered für das Erstellen von Seitenumbrüchen. Übergeben Sie also die Gesamtzahl der Daten in Ihrer Tabelle für diesen Parameter recordsFiltered