Intereting Posts
Переменные $ _SESSION и идентификатор не переносятся между страницами на localhost Проверьте, существует ли константа класса Предотвратить создание встроенного веб-сайта Внедрение переменной массива PHP GET включить файл из другого каталога Как обновить всплывающее содержимое с помощью MarkerCluster с помощью листовки Недопустимый аргумент, предоставленный foreach () + Логика скрипта Как получить доступ к массиву массивов в PHP PHP, отлитый от integer, возвращает неверное значение Каковы хорошие, быстрые постоянные параметры хранения данных key-> value? как перебирать не-английские имена файлов в PHP PHP и MySQL. Развертывание N разделителей с N значениями из массива Использование PHP для удаления выбранного элемента из раскрывающегося списка, среди прочих Плюсы / минусы использования index.php? Q = путь / вместо index.php / path / при маршрутизации URL-адресов? Не удается получить доступ к глобальной переменной внутри функции

сортировка данных по строке в виде числа

У меня есть datatable, и я хочу сортировать как числовое значение, которое содержит значение, такое как 1st, 2nd …., вот мой код, когда я сортирую его, он сортирует значения, такие как 1, 10, 2 и так далее, как правильно сортировать их?

$('#example').DataTable( { // "columnDefs": [ // { "visible": false, "targets": 4 } // ], "aaSorting": [[1,'asc']], "columnDefs": [ { "targets": [2,5,6], "orderable": false } , { "targets": 0, "orderable": false }, { "width": "5%", "targets": 0 }, { "width": "8%", "targets": 1 }], initComplete: function () { this.api().columns().every( function () { var column = this; var select = $('<select><option value=""></option></select>') .appendTo( $(column.footer()).empty() ) .on( 'change', function () { var val = $.fn.dataTable.util.escapeRegex( $(this).val() ); column .search( val ? '^'+val+'$' : '', true, false ) .draw(); } ); column.data().unique().sort().each( function ( d, j ) { select.append( '<option value="'+d+'">'+d+'</option>' ) } ); } ); } }); 

Самый простой способ, которым я знаю, это использовать плагин Formatted Numbers

Вот пример:

 jQuery.extend( jQuery.fn.dataTableExt.oSort, { "formatted-num-pre": function ( a ) { a = (a === "-" || a === "") ? 0 : a.replace( /[^\d\-\.]/g, "" ); return parseFloat( a ); }, "formatted-num-asc": function ( a, b ) { return a - b; }, "formatted-num-desc": function ( a, b ) { return b - a; } } ); $('#tbl_jaar').dataTable( { columnDefs: [ { type: 'formatted-num', targets: 0 } ] } ); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.datatables.net/1.10.10/js/jquery.dataTables.min.js"></script> <link href="https://cdn.datatables.net/1.10.10/css/jquery.dataTables.min.css" rel="stylesheet"/> <table id="tbl_jaar"> <thead> <tr> <th>Places</th> </tr> </thead> <tbody> <tr> <td>1st</td> </tr> <tr> <td>2nd</td> </tr> <tr> <td>3rd</td> </tr> <tr> <td>4th</td> </tr> <tr> <td>5th</td> </tr> <tr> <td>6th</td> </tr> <tr> <td>7th</td> </tr> <tr> <td>8th</td> </tr> <tr> <td>9th</td> </tr> <tr> <td>10th</td> </tr> </tbody> </table> 

вам нужно определить sType как числовое значение в столбцеdef, где вы хотите отсортировать номер

 $('#example').DataTable( { "aoColumns": [ { "sType": "numeric" }, null, null, null, null ], // define at the place where sorting should by by numeric // other options goes here }); 

// с над столбцом в индексе 0 будут отсортированы по числовым, а другие столбцы будут автоматически обнаружены автоматически. длина столбцов должна быть равна числу столбцов.