如何手动定义数据表服务器端排序?

1 datatable jquery datatables jquery-datatables

Datatables 插件使用列索引对数据进行排序。但我想用 MySQL 列名的名称手动定义这些索引。我有 60 多列,用户可以在 settngs 部分更改列顺序。

数据表发送例如:

order[0][column]:"6"
order[0][column]:"desc"
Run Code Online (Sandbox Code Playgroud)

我还想发送自己定义的列名..

Ark*_*rka 5

可以选择使用自定义 http 变量。但是有更好的方法。在服务器端脚本中编写一个包含 mysql 列名称和数据表列索引的数组。

<?php
$columns = array(
// datatable column index  => database column name
    0 =>'employee_name',
    1 => 'employee_salary',
    2=> 'employee_age'
);
?>
Run Code Online (Sandbox Code Playgroud)

然后就可以用列名写sql了,就这样。

$sql = "SELECT employee_name, employee_salary, employee_age ";
$sql.=" FROM employee";
$sql.=" ORDER BY ". $columns[$_REQUEST['order'][0]['column']]."   ".$_REQUEST['order'][0]['dir']."   LIMIT ".$_REQUEST['start']." ,".$_REQUEST['length']."   ";
Run Code Online (Sandbox Code Playgroud)

作为参考,您可以参考coderexample