Я использую плагин TableSorter, чтобы позволить пользователям легко сортировать данные. Это вообще прекрасно работает. Моя проблема в том, что первый столбец содержит автоматически увеличенное значение. Когда пользователи сортируют столбец, отличный от этого первого столбца, я бы хотел, чтобы эти числа были изменены. Таблица выглядит так:
$y = 0;
foreach ($data as $row) {
$y++;
$table = "<tr><td>$y</td></tr>
<td>$row->name</td>
</tr>";
}
print "<table id='myTable' class='tablesorter' cellpadding='1'>
<th>No</th>
<th>Name</th>
$table
</table>";
После сортировки хотелось бы $y
изменить порядок так, чтобы верхняя строка всегда отображала 1. Как я могу сделать это, не отправляя запрос обратно на сервер? Javascript?
На домашней вики-странице TableSorter (в разделе «Виджеты»> «Прочие»> «Автоматическая нумерация строк») есть три примера:
Автоматическая нумерация строк без пейджера.
// add custom numbering widget
$.tablesorter.addWidget({
id: "numbering",
format: function(table) {
var c = table.config;
$("tr", table.tBodies[0]).each(function(i) {
$(this).find('td').eq(0).text(i + 1);
});
}
});
Автоматическая нумерация строк со значениями вместо индекса.
// add custom numbering widget
var columnText = [ 'a', 'b', 'c', 'd', 'e' ];
$.tablesorter.addWidget({
id: "numbering",
format: function(table) {
$("tr:visible", table.tBodies[0]).each(function(i) {
$(this).find('td').eq(0).text( columnText[i] );
});
}
});
Других решений пока нет …