Сортировка таблиц данных Bootstrap для различных единиц измерения не работаетJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Сортировка таблиц данных Bootstrap для различных единиц измерения не работает

Сообщение Anonymous »

У меня есть столбец, значения длины которого определены в различных единицах измерения, например: 10 мм, 200 см, 500 мм и т. д., где мм = миллиметр и см = сантиметр. Я использую серверный скрипт, чтобы получить это из моей базы данных MySql. Лучший способ заставить их правильно сортировать по возрастанию и убыванию или наоборот — преобразовать все значения в мм, а затем отсортировать. Я пробовал разные способы добиться этого, в том числе читал ортогональные данные, но не смог понять этого. Каждый раз сортировка происходит бессистемно, значения смешиваются и тому подобное.
Мой PHP-скрипт прост:-

Код: Выделить всё

$columns = array(
array( 'db' => 'length', 'dt' => 'length' )
);
Что касается всего, что я пробовал на уровне JS, вот следующее: -
Метод 1. Установите значение сортировки, когда тип равен сортировка
Результат: бессистемная сортировка без ритма

Код: Выделить всё

new DataTable('#lt-table', {
ajax: {
url: 'lt-sorter.php',
type: 'POST'
},
columns: [
{ data: 'null',
render: function ( data, type, row ) {
if ( type === 'sort' ) {
if (row.length.includes('mm')) {
var sortValue = row.length.replace('mm', '');
} else if (row.length.includes('cm')) {
var sortValue = row.length.replace('cm', '') * 10;
}
return sortValue;
} else {
return row.length;
}
}
},
processing: true,
serverSide: true
});
Метод 2. CreateRow для добавления сортировки данных
Результат: сортировка данных установлена ​​успешно. Но все равно это беспорядочно, без ритма. Также попробовал упорядочить данные, результат тот же

Код: Выделить всё

createdRow: function (row, data, dataIndex) {
if (data.length.includes('mm')) {
$(row).find('td:eq(0)').attr('data-sort', data.length.replace('mm', ''));
} else if (data.length.includes('cm')) {
$(row).find('td:eq(0)').attr('data-sort', data.length.replace('cm', '') * 10);
}
}
Метод 3. Скрытое значение
Результат: Скрытое значение полностью игнорируется. Сортировка практически не происходит

Код: Выделить всё

return '' + row.length.replace('mm', '') + ' ' + row.length;
Очевидно, я где-то сильно лажаю, но может ли кто-нибудь указать, что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ot-working
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»