@Hellows

Как исправить сортировку в плагине DataTable?

Кто работал с плагом DataTable(Ccылка на плагин для просмотра///
Офиц. сайт)
тот столкнулся с тем, что сортировка столбца идёт по значению TD. К примеру, у меня есть столбец "На складе". В бд имеет числовой формат, но скрипт не обращает внимание на этот формат.
0f39ab917e4844e5865d05b00376e9b0.png
На скриншоте видно, что сортировка идёт по уменьшению. Надпись "Товар закончился" означает, что в бд значение = 0. Затем идёт 9, 8 и каким-то образом в конце 154.. Скрипт считывает 1 цифру как я понял, а надпись мою вообще поместил на 1 место, хотя там 0. Как я раньше сказал, то скрипт читает только содержимое TD.
Как исправить это недоразумение? Я хочу, чтобы сортировка была по значениям в БД!
Надпись делал вот так:
if($value['Available'] <= 0)
   $Available = "<span class='label'>Товар закончился</span>";	
elseif ($value['Available'] > 5)
   $Available = "<span class='label disabled btn-success'>".$value['Available']."</span>";	
elseif ($value['Available'] < 5 && $value['Available'] > 0)
   $Available = "<span class='label disabled btn-warning'>".$value['Available']."</span>";	
echo "<td>".$Available."</td>";
  • Вопрос задан
  • 3678 просмотров
Пригласить эксперта
Ответы на вопрос 2
BOOMER_74
@BOOMER_74
Full-Stack разработчик
Посмотрите это или напишите свой плагин/алгоритм сортировки.
Ответ написан
@asdz
Вам нужен серверный скрипт который будет выдавать json. Пример такого скрипта с сортировкой на сервере. То что у вас, это не то.
Серверному скрипту передается кучка параметров, в том число сортировка и направление. Вы должны в своем скрипте посмотреть на iSortCol_X и sSortDir_X, где iSortCol_X - порядковый номер столбца по которому выполняется сортировка, sSortDir_X направление сортировки - asc или desc. Затем в скрипте определить название колонки в бд соответсвующее номеру сортируемой колонки в datatables и добавить к своему sql order by. Затем сделать запрос и вернуть json. Рендер таблички выполняется на клиенте, но формирование данных - на сервере, передача через ajax.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы