如何增加jquery DataTable显示的条目数?

时间:2017-12-01 20:42:31

标签: php jquery phpmyadmin datatables

我有一个包含18000行的数据库。 DataTable显示前500行。

如何增加可显示的条目数?

pageLength& lengthMenu属性不会影响结果。

game_db.php

<?php
function getGames() { 
    $query = "select * FROM games LIMIT 10000"; 
    try {
    global $db;
        $games = $db->query($query);  
        $game = $games->fetchAll(PDO::FETCH_ASSOC);
        header("Content-Type: application/json", true);
        echo '{"games": ' . json_encode($game) . '}';
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}
?>

main.js

function renderList(data){
    list = data.games;
    console.log("renderList");
    $('#admin_table_body tr').remove();
    $.each(list, function(index, games){
        $('#admin_table_body').append('<tr><td>' +games.title+'</td><td>'+games.genre+'</td><td>' 
                +games.platform+'</td><td>' +games.score_phrase+'</td><td>'
                +games.score+'</td><td>'+games.release_year+'</td><td>'+games.release_month+'</td><td>'
                +games.release_day+'</td><td>'+games.editors_choice+'</td><td>\n\
                <a href="#"  id="'+games.id+'" "span class="fa fa-pencil" data-toggle="modal" data-target="#editModal">Edit</a></td></tr>');
    });
    $('#admin_table').DataTable();

这将生成数据表中的行。

2 个答案:

答案 0 :(得分:2)

使用iDisplayLength参数

$(document).ready( function() {
  $('#example').dataTable( {
    "iDisplayLength": 1000 // to display 1000 rows
    "iDisplayLength": -1 // to display all rows
  } );
} )

https://legacy.datatables.net/ref#iDisplayLength

答案 1 :(得分:1)

首先,您没有正确使用DataTables。您正在创建表而没有DataTables库的帮助。这就是为什么pageLength&amp; lengthMenu选项不起作用。

$('#admin_table_body').append('<tr><td>' +games.title+'</td><td>'+games.genre+'</td><td>' 
          +games.platform+'</td><td>' +games.score_phrase+'</td><td>'
          +games.score+'</td><td>'+games.release_year+'</td><td>'+games.release_month+'</td><td>'
          +games.release_day+'</td><td>'+games.editors_choice+'</td><td>
          <a href="#"  id="'+games.id+'" "span class="fa fa-pencil" data-toggle="modal" data-target="#editModal">Edit</a></td></tr>');

相反,你应该使用如下所示。有关详细信息,请参阅DataTables Ajax sourced data doc

$('#example').DataTable( {
    "ajax": "path/of/your/php_file.php"
} );

现在您可以使用pageLength选项。请注意,如果使用paging选项禁用pagination,则会自动禁用此选项,因为在没有分页时它与之无关。

$('#example').DataTable( {
    "ajax": "path/of/your/php_file.php",
    "pageLength": 700
} );

我建议你反对增加pageLength以支持表现。有关详细信息,请参阅this thread

Demo