Некоторые предложения:
1) Параметр DataTables «сортировка по умолчанию»
Решение, предложенное @Remul - order: []
- должно сработать. Это говорит о том, что есть проблема в другом месте, потенциально мешающая DataTables. Некоторые предложения:
(a) Итератор foreach
делает что-то удивительное. Маловероятно, но вы можете проверить это.
(b) Можете ли вы получить DataTables для первоначальной сортировки по любому другому полю , используя order []
? Например, сортировка по первому столбцу в порядке убывания:
order: [[ 0 , "desc" ]],
(c) Ваш инициализатор DataTables находится внутри функции document ready
?
$(document).ready(function() {
$('#posts-data').DataTable({
colReorder: true,
order: [],
pageLength: 0,
lengthMenu: [20, 40, 60, 80, 90, 100],
});
});
I'm конечно, но на всякий случай ...
2) Добавьте ваши created_at
данные в таблицу
Я предполагаю, что это поле даты или даты / времени. DataTables имеет несколько ограниченную поддержку для сортировки дат и времени (без использования плагинов), поэтому я рекомендую отформатировать ваши данные как поле сортируемой строки (например, YYYY-MM-DD HH24:MI:SS
или любой другой вариант, который вам подходит).
(a) Вы можете добавьте его как скрытое поле.
(б) Просто предложение: рассмотрите возможность добавления его в качестве видимого поля. В противном случае пользователи могут отсортировать данные по некоторому другому столбцу, и они не смогут вернуться к первоначально отображенному порядку сортировки (created_at
по убыванию). Примерно так:
"columnDefs": [
{
"targets": 5, // assuming the datetime is the 6th column
"visible": false
}
]
3) Сборка из базового c решения
Удалите все, что не нужно, чтобы продемонстрировать нужный порядок сортировки. Так, например, удалите colReorder
; удалить все столбцы, кроме первого, и так далее. Предполагая, что он начинает работать в какой-то момент, вы можете добавлять элементы обратно один за другим.