数据分页不适用于服务器端

时间:2017-07-08 18:33:00

标签: php mysqli pagination datatables datatables-1.10

我想使用datatable插件显示来自数据库的数据,但问题是,它显示了一个页面中的所有数据,仍显示显示10个中的1和分页按钮但不起作用。

enter image description here

enter image description here

jquery的:

<script>
    $(document).ready(function() {
    $('#leads').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax":{
            url :"includes/get_data_script_test.php", // json datasource
            type: "post",  // type of method  , by default would be get
          }
    } );
} );
</script>

get_data_script_test.php:

<?php

/*
 * DataTables example server-side processing script.
 *
 * Please note that this script is intentionally extremely simply to show how
 * server-side processing can be implemented, and probably shouldn't be used as
 * the basis for a large complex system. It is suitable for simple use cases as
 * for learning.
 *
 * See http://datatables.net/usage/server-side for full details on the server-
 * side processing requirements of DataTables.
 *
 * @license MIT - http://datatables.net/license_mit
 */

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Easy set variables
 */

// DB table to use
$table = 'lead';

// Table's primary key
$primaryKey = 'id';

// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the `dt`
// parameter represents the DataTables column identifier. In this case simple
// indexes

$columns = array(
    array( 'db' => 'name', 'dt' => 0 ),  
);

// SQL server connection information
$sql_details = array(
    'user' => '**********',
    'pass' => '***********',
    'db'   => '**********',
    'host' => '**********'
);


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * If you just want to use the basic configuration for DataTables with PHP
 * server-side, there is no need to edit below this line.
 */

require( 'ssp_class.php' );

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

1 个答案:

答案 0 :(得分:0)

要进行分页工作,您需要在jquery脚本中进行设置。你需要这样的东西:

&#13;
&#13;
<script>
    $(document).ready(function() {
    $('#leads').DataTable( {
        "lengthMenu": [[10,15,20,25,-1], [10,15,20,25,'All']], //This line needs added so that it knows what to set the page lengths to
        "processing": true,
        "serverSide": true,
        "ajax":{
            url :"includes/get_data_script_test.php", // json datasource
            type: "post",  // type of method  , by default would be get
          }
    } );
} );
</script>
&#13;
&#13;
&#13;

如果没有lengthMenu DataTables知道如何设置页面长度,并且只会显示所有数据。