数据表,分页后的错误结果

时间:2015-10-19 09:47:14

标签: jquery datatables ssp

当我对表格进行排序时,我在第二页中获得了一些记录,而其他一些记录则没有显示。

这是我第一次使用数据表时,它是一张表,用于获取网站上创建的所有商店的记录。当我进入下一页时,有时我的一条记录消失了,而第一页则有一条双重记录。

public function winkeltables()
 {
     $table = 'alle_winkels';
     $primaryKey = 'w_id';
     $id = $_GET['k_id'];
     $columns = [
         ['db' => 'w_logo', 'dt' => 0, 'formatter' => function ($d, $row) {
             if ($d == "") {
                 return "";
             }
             return "<img class='thumb' src='/" . $d . "'/>";
         }],
         ['db' => 'k_beoordeling', 'dt' => 1, 'formatter'=> function($d, $row){
             return beoordeling($d);
         }],
         ['db' => 'w_naam', 'dt' => 2],
         ['db' => 'w_land', 'dt' => 3],
         ['db' => 'w_straat', 'dt' => 4],
         ['db' => 'w_postcode', 'dt' => 5],
         ['db' => 'w_woonplaats', 'dt' => 6],
         ['db' => 'w_id', 'dt' => 7, 'formatter' => function ($d, $row) {
             return "<a data-id='" . $d . "' href='/winkeldetail?w_id=" . $d . "'>Bekijk</a>";
         }],
     ];
     $sql_details = [
         'user' => 'x',
         'pass' => 'x',
         'db' => 'x',
         'host' => 'x'
     ];

     if($id != "")
     {
         $where = ["k_id = " . $id];
         echo json_encode(
             \SSP::complex($_GET, $sql_details, $table, $primaryKey, $columns, $where)
         );
     }
     else{
         echo json_encode(
             \SSP::simple($_GET, $sql_details, $table, $primaryKey, $columns)
         );
     }

     die;
 }

我认为的脚本是:

<script>
    $(document).ready(function() {
        var dt = $('#example').DataTable({
            "processing": true,
            "serverSide": true,
            "ajax": "/datatables/winkel",
            "language": {
                "url": "http://cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Dutch.json"
            }
        });
        $('#example tbody').on( 'click', 'tr', function () {
            var url = $(this).find('td').last().find('a').attr('href');
            if(url) {
                window.location = url;
            }
        } );
    });
</script>

我正在使用www.datatables.net的标准文件

1 个答案:

答案 0 :(得分:0)

我已经解决了自己的问题。我通过在ssp.php文件中添加另一个订单解决了我的问题。

新代码是:

if ( $requestColumn['orderable'] == 'true' ) {
                $dir = $request['order'][$i]['dir'] === 'asc' ?
                    'ASC' :
                    'DESC';

                $orderBy[] = '`'.$column['db'].'` '.$dir . ', '. '`'.'w_naam'.'`'. ' ASC';
            }

旧代码是:

if ( $requestColumn['orderable'] == 'true' ) {
                $dir = $request['order'][$i]['dir'] === 'asc' ?
                    'ASC' :
                    'DESC';

                $orderBy[] = '`'.$column['db'].'` '.$dir;
            }

我不知道这段代码是否有效,但至少它现在有用了!