Данные, отсортированные на стороне сервера, отображаются не в том же порядке в таблицах данных - PullRequest
0 голосов
/ 28 июня 2018

Я использую Datatables для отображения данных из базы данных. Я использую CodeIgniter для серверных скриптов. Вот изображение таблицы

enter image description here

В моем серверном коде я запрашиваю порядок в своей базе данных по Страна и в порядке убывания.

Я проверил запрос выбора CodeIgniter для отладки, т.е.

$this->db->get_compiled_select()

и он показывает

'SELECT *
FROM `tmp`
ORDER BY `country` DESC'

здесь tmp - это имя моей базы данных, и оно работает хорошо.

вот мой ответ json из базы данных (я не могу показать вам весь ответ JSON из-за длинного текста. Вот почему я использую какой-то онлайн-сайт для разбора json для обобщения моих данных.)

enter image description here

Мой ответ json, показывающий данные в соответствии с запросом к базе данных, т.е. столбец страны в порядке убывания. Вот почему первый объект показывает "Зимбабве" . Но в таблицах данных он показывает другие данные, т.е. "Андора" .

Вот мой JavaScript -

    <script type="text/javascript">
        $(document).ready( function () {
            $('#myTable').DataTable( {
                "responsive": true,
                "processing": true,
                "serverSide": true,
                "ajax": {
                    "url":  "http://localhost/adminDemo/admin/test",
                    "type": "POST"
                },
                "columnDefs" : [
                    {"width" : "20%", "targets" : 7},
                    {"width" : "30%", "targets" : 5},
                    { "orderable": false, "targets": 7 } //Don't order the action column
                ]
            } );
        } );
    </script>

Если я установил "order": [[6, "desc"]] в параметре datatables, то он будет отсортирован после получения ответа json. Я не хочу добавлять клиентский скрипт для заказа столбца. Я просто хочу использовать отсортированный ответ JSON в таблицах данных. Кто-нибудь может мне помочь с этим?

1 Ответ

0 голосов
/ 28 июня 2018

Простое решение этой проблемы - просто укажите пустую опцию [] для order.

$('#example').DataTable( {
    "order": []
} );

Нет порядка, применяемого DataTables во время инициализации. Строки отображаются в порядке их чтения DataTables (т. Е. Исходный порядок из DOM, если источник DOM, или массив данных, если Ajax / источник данных):

Источник: Таблица данных: Заказ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...