当我从 ajax 发送数据时,如何在 jQuery 中使用 DataTables 对列进行排序?

Posted

技术标签:

【中文标题】当我从 ajax 发送数据时,如何在 jQuery 中使用 DataTables 对列进行排序?【英文标题】:How can i use DataTables in jQuery to order column when I'm sending data from ajax? 【发布时间】:2021-02-06 11:52:27 【问题描述】:
<script>
    var userdataTable = $('#user_data').DataTable(
        "processing": true,
        "serverSide": true,
        "order":[],
        "ajax": 
            url: "purchase_fetch.php",
            type: "POST",
        ,


        "pageLength": 10
    );
</script>

数据在表中正确加载,但排序不正确。你能帮我么! 可能缺少什么?我是 jQuery 和 ajax 的新手。而且我还没有在 DataTables 上找到任何好的在线教程。

【问题讨论】:

【参考方案1】:
    在PHP中获取数据表的“order”参数(即有序列的索引和方向)
$orderArray = $_GET['order'];
    在 PHP 中获取数据表“colums”参数
$columns = $_GET['columns'];
    将订单索引与列名匹配
        if (!empty($orderArray )) 
            $orderDir = $orderArray [0]['dir'];
            $order = $orderArray [0]['column'];
            if (array_key_exists($order , $columns )) 
                $orderBy = $columns [$order ]['data'];
            
        
    更改数据库查询
$sql = "SELECT * FROM MyTable mt 
ORDER BY $orderBy $orderDir ";

这只是一个示例,使用 PDO 参数保护 SQL。 如果数据表列名与数据库列名不同,可以使用数据表“数据”选项进行更改:

columns: [title: "My Datatable Column Name", data: 'my_database_column_name']

【讨论】:

谢谢你,我会试试你的建议。

以上是关于当我从 ajax 发送数据时,如何在 jQuery 中使用 DataTables 对列进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 javascript / jQuery 获取数据 ajax api 数组?

如何在 jQuery $.ajax() 发布请求中向 MVC 控制器方法发送模型

使用 ajax 和 mvc 提交带有照片数据的表单

我想知道为啥当我发送一个数组以使用 jquery ajax (django,jquery) 查看时发生错误

jQuery Ajax POST 不适用于 MailChimp

如何使用 ajax jQuery 重定向指定重定向 url