php - 如何按 ASC 或 DESC 日期对表格进行排序?
问题描述
<?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 脚本或类似的。
解决方案
在这里,您可以通过两种方式对数据进行排序。
- 您可以使用过滤器选项(例如 ajax 调用)对日期进行排序,并根据您的要求按原因应用 php 查询,并以 json 格式获取响应并再次重新绘制表数据。
- 否则,您可以使用引导数据表并在日期列上应用排序功能。
数据表的链接在这里: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" } ]
});
});
输出在这里。您可以看到排序功能仅适用于第一列。
推荐阅读
- java - crud 控制器和 DAO 有什么区别?
- latex - 在 Emacs 多模式中将 .Rmd 编织为 .pdf 和 .html 时如何获得簇绒样式的导出输出?
- python - Python脚本无故退出
- xamarin.forms - 如何使用 Xamarin Forms 更改键盘的习惯用法
- php - 如何使用 PHPmailer 添加超过 1 个 pdf 以通过电子邮件发送
- c++ - Segmentfault 试图从函数访问结构中的值
- pine-script - 除当前柱线外,如何绘制蜡烛的高点和低点?
- r - 从R中的字符串压缩多个换行符\ n和制表符\ t
- spring-boot - Spring boot api消耗不与文件和json的multipart一起使用
- stream - 语法上的存储库失败