如何按ASC或DESC日期对表格排序?

时间:2019-10-10 03:54:57

标签: php mysql codeigniter

    <?php $session=$this->session->userdata['id'];
    ?>
        <?php
          foreach ($results as $r) {
            $InitDt = date(('d/m/Y'),strtotime($r->InitDt));
            $EndDt = date(('d/m/Y'),strtotime($r->EndDt));
            if($session=='1'){
            echo '<tr>';
            echo '<td>'.$r->idOs.'</td>';
            echo '<td>'.$r->ClientName.'</td>';
            echo '<td>'.$InitDt.'</td>';
            echo '<td>'.$EndDt.'</td>';
            echo '<td>'.$r->status.'</td>';
            echo  '</td>';
            echo '</tr>';
        }
        else
        {   
            if($session==$r->userId){
            echo '<tr>';
            echo '<td>'.$r->idOs.'</td>';
            echo '<td>'.$r->ClientName.'</td>';
            echo '<td>'.$InitDt.'</td>';
            echo '<td>'.$EndDt.'</td>';
            echo '<td>'.$r->status.'</td>';
            echo '<td>';
            echo '</td>';
            echo '</tr>';
        }
        }
        }
        ?>

此代码是在codeigniter视图文件夹中构建表的调用。 其他代码控制对数据库的查询。该代码没有错误。问题仅在于是否可以在PHP中排序(以及如何进行排序),或者是否应该使用Java脚本或类似脚本。

example of the code result above

2 个答案:

答案 0 :(得分:0)

在这里,您可以用两种方式对数据进行排序。

  1. 您可以使用过滤器选项(例如ajax调用)对日期进行排序,并根据需要按 order by 原因应用php查询,并以json格式获取响应并再次重绘表格数据。
  2. 否则,您可以使用引导数据表并在日期列上应用排序功能。

链接在这里是数据表:https://datatables.net/examples/styling/bootstrap4

在数据表中,默认情况下对所有列应用排序。要删除默认排序,并在以下特定列上应用排序

var table;
jQuery(document).ready(function () { 
    table = jQuery('#cstm_people_range_list').DataTable({
            "order": [[0,"asc"]],
            "columnDefs": [{ "orderable": false, "targets": "_all" } ]
    });
});

输出在这里。您会看到排序功能仅适用于第一列。

enter image description here

答案 1 :(得分:0)

  $(document).ready(function() {
   $('#table_name').DataTable( {
       "order": [[ 3, "desc" ]]
   } );

});

您可以使用Datatable进行排序。通过重新输入列索引号来尝试上面的代码。

有关更多信息,请参考--https://datatables.net/examples/basic_init/table_sorting.html