json - Ajax 数据表排序
问题描述
是否可以根据while循环内的数据进行排序?不使用sql order by。而且在我选择了哪一列之后,它会根据里面的数据对 desc 或 asc 进行排序,而不是按数据库列排序,并且每页限制为 10
查找.php
$draw = $_POST['draw'];
$row = $_POST['start'];
$rowperpage = $_POST['length']; // Rows display per page
$columnIndex = $_POST['order'][0]['column']; // Column index
$columnName = $_POST['columns'][$columnIndex]['data']; // Column name
$columnSortOrder = $_POST['order'][0]['dir']; // asc or desc
$searchValue = $_POST['search']['value']; // Search value
## Custom Field value
$searchByName = $_POST['searchByName'];
$searchByGender = $_POST['searchByGender'];
$sel = $con->query("SELECT * FROM a, b WHERE a.nrek=b.nrek GROUP BY a.name");
$records = $con->num_rows();
$totalRecords = $records;
## Total number of records with filtering
$sel = $con-query("SELECT * FROM a, b WHERE a.nrek=b.nrek AND 1 ".$searchQuery."GROUP BY a.name");
$records = $con->num_rwos();
$totalRecordwithFilter = $records;
$empQuery = $con->query("SELECT * FROM a, b, c WHERE a.nrek=b.nrek AND a.kode=c.kode AND a.kode='3' GROUP BY a.nrek ORDER BY ".$columnName." ".$columnSortOrder." limit ".$row.",".$rowperpage");
while ($row1 = $empquery->fetch_array())
{
$querybalance2 = $con->query("SELECT SUM(b.balance) as balance FROM a JOIN a ON a.nrek= b.nrek WHERE a.kode= '$row1[kode]' AND b.period='$_SESSION[lastperiod]'");
$querybalance2 = $con->query("SELECT SUM(b.balance) as balance FROM a JOIN a ON a.nrek= b.nrek WHERE a.kode= '$row1[kode]' AND b.period='$_SESSION[newperiod]'");
$balance2 = $querybalance2->fetch_array();
$balance1 = $querybalance1->fetch_array();
$data[] = array(
"arek"=>$row1[nrek],
"balance1"=>$balance1,
"balance2"=>$balance2
);
}
$response = array(
"draw" => intval($draw),
"iTotalRecords" => $totalRecords,
"iTotalDisplayRecords" => $totalRecordwithFilter,
"aaData" => $data
);
echo json_encode($response);
Ajax.js
var dataTable = $('#empTable').DataTable
({
'processing': true,
'serverSide': true,
'serverMethod': 'post',
//'searching': false, // Remove default Search Control
'ajax':
{
'url':'lookup.php',
'data': function(data)
{
}
},
'columns':
[
{ data: 'arek' },
{ data: 'balance1', className: 'text-center' },
{ data: 'balance2', className: 'text-center' },
]
});
html.php
<table id="empTable" class="display dataTable">
<thead>
<tr>
<th>Nrek</th>
<th>Balance1</th>
<th>Balance2</th>
</tr>
</thead>
</table>
我想限制它,以便数据加载和显示更快。如果用户单击该列,数据表将根据数据而不是列对其进行排序。我试过但“无效的 json 响应”,因为数据库中没有“balance2”列。
需要帮助,谢谢
解决方案
推荐阅读
- html - li 作为多个 li 在 ul 内部的主要容器不起作用
- c# - C# 线程和多用户程序
- ms-access - Access VBA - 用不同的记录源分隔相同的表单?
- python - 配准具有不同视野的非各向同性 CT 扫描
- python - 在python中定义数组时出现语法错误
- excel - 遍历所有行并找到活动工作表 VBA 的空行
- bootstrap-4 - 使用行/容器引导程序填充窗口剩余高度
- python - 如何在运行 selenium 时在 mac 上粘贴剪贴板中的文本 - Python
- java - 从 (RSA) PublicKey 手动创建 JWK
- azure - 从门户更改 Azure Api 管理中的服务结构终结点端口