数据表服务器端为分页呈现太多页面

时间:2016-09-29 07:23:55

标签: javascript php datatables

我正在使用Datatables.net插件并使用我自己的服务器端脚本来返回json数据,json代码看起来像这样。

{
  "draw": 1,
  "recordsTotal": 100,
  "filteredTotal": 100,
  "data": [
    [
      "10",
      "2",
      "Dignissimos voluptatem odit commodi tenetur eaque ut. Reprehenderit asperiores accusamus ut enim rem fugiat suscipit. Beatae illo ipsum et non commodi. Sed consequuntur assumenda optio dignissimos.",
      "Occaecati ut pariatur optio maiores delectus ipsum rerum ipsam. Porro est dolores consequatur amet fugit cumque.",
      "9",
      "4",
      "3",
      "Repellat qui aliquam qui nostrum illum soluta debitis sint. Qui ut autem ut qui sint dolorum. Laborum neque ipsam eum non ut. Vel et expedita qui aut tempora qui."
    ],
    [
      "11",
      "4",
      "Pariatur rerum dolorem in quibusdam. Sunt iusto impedit perspiciatis et rerum possimus. Magni mollitia eos architecto. Laborum voluptatem mollitia dolorem porro.",
      "Doloribus vel aut quia ea et non consequuntur eligendi. Aut vero accusamus ipsa tenetur ullam perspiciatis. Exercitationem est facilis animi. Et alias modi dignissimos repudiandae.",
      "0",
      "2",
      "9",
      "Dolorem ullam ut illo est officia. Nesciunt nisi porro aut. Unde non pariatur ab aut. Enim quis ratione et ipsum voluptatem placeat."
    ],
    [
      "12",
      "2",
      "Consequatur dignissimos consequuntur repellendus enim quod. Aut ipsa cum enim perferendis. Qui et odit voluptatem ex quia temporibus quod. Culpa suscipit qui molestiae est labore.",
      "Quis sit quis et et harum ipsum accusantium. Quisquam aut fugiat ipsum ut velit autem cupiditate. Consequatur aut et voluptates totam porro et.",
      "0",
      "4",
      "6",
      "Dicta aut hic quia deleniti soluta soluta. Neque accusantium beatae ut et autem quo. Consequatur placeat vel dolores magnam alias dolorem. In nam et aspernatur esse ea reiciendis."
    ],
    [
      "13",
      "9",
      "Qui sit aut repellat consequatur quia reprehenderit non. Repellat quia quaerat aspernatur consequatur dolorum temporibus maxime illo. Recusandae optio explicabo saepe cupiditate.",
      "Nihil quae est suscipit ullam sed tempora nesciunt voluptates. Dolorum numquam temporibus est praesentium atque non cum. Quo veniam voluptatem repudiandae voluptas corrupti ipsa.",
      "1",
      "6",
      "1",
      "Harum officia iusto eveniet qui et. Dolores veritatis et error nam possimus nemo. Non natus sunt laborum magnam. Eum rerum laboriosam in eligendi nihil dolores recusandae distinctio."
    ],
    [
      "14",
      "2",
      "Sed veritatis et illum odio. Eius recusandae cumque qui animi quia enim. Unde repellendus ut sequi. Ea fugiat quasi ut in aut.",
      "Rerum nam deleniti voluptates quod fugit. Est exercitationem repellendus voluptates id. Minima dicta modi maxime.",
      "8",
      "0",
      "1",
      "Magnam et fugit tempore qui praesentium. Quia sit eum quo et quo aut. Iusto non sequi ducimus sint qui."
    ]
  ]
}

我的请求看起来像这样。

draw=1&columns[0][data]=0&columns[0][name]=p.id&columns[0][searchable]=false&columns[0][orderable]=false&columns[0][search][value]=&columns[0][search][regex]=false&columns[1][data]=1&columns[1][name]=p.supplier_id&columns[1][searchable]=false&columns[1][orderable]=false&columns[1][search][value]=&columns[1][search][regex]=false&columns[2][data]=2&columns[2][name]=p.title&columns[2][searchable]=false&columns[2][orderable]=false&columns[2][search][value]=&columns[2][search][regex]=false&columns[3][data]=3&columns[3][name]=p.permalink&columns[3][searchable]=false&columns[3][orderable]=false&columns[3][search][value]=&columns[3][search][regex]=false&columns[4][data]=4&columns[4][name]=p.mpn&columns[4][searchable]=false&columns[4][orderable]=false&columns[4][search][value]=&columns[4][search][regex]=false&columns[5][data]=5&columns[5][name]=p.barcode&columns[5][searchable]=false&columns[5][orderable]=false&columns[5][search][value]=&columns[5][search][regex]=false&columns[6][data]=6&columns[6][name]=p.spc&columns[6][searchable]=false&columns[6][orderable]=false&columns[6][search][value]=&columns[6][search][regex]=false&columns[7][data]=7&columns[7][name]=p.description&columns[7][searchable]=false&columns[7][orderable]=false&columns[7][search][value]=&columns[7][search][regex]=false&start=0&length=5&search[value]=&search[regex]=false&_=1475131244317

然后我在我的数据表中使用分页但是我应该期望20个页面有5个记录,当我尝试分页时它总共有100个分页,但它会产生太多的页面,它会无休止地进行。

datatables too many pages

这是我初始化数据表的javascript。

<script>
$('#products').DataTable({
        "processing": true,
        "serverSide": true,
        "ajax": "/product/data",
        "searching": false,
        "ordering": false,
        "columns": [
            { name: 'p.id', "searchable": true },
            { name: 'p.supplier_id', "searchable": false },
            { name: 'p.title', "searchable": false },
            { name: 'p.permalink', "searchable": false },
            { name: 'p.mpn', "searchable": false },
            { name: 'p.barcode', "searchable": false },
            { name: 'p.spc', "searchable": false },
            { name: 'p.description', "searchable": false }
        ]
    });
</script>

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,返回JSON中的密钥filteredTotal必须是recordsFiltered。我改变了这一点后,我的分页工作正常。