ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ
Готовые JavaScript скрипты для сайтов. W3Schools на русском

Сортировка данных таблицы


Сортировка данных таблицы на веб-странице с помощью JavaScript

При помощи данного скрипта можно производить сортировку данных таблицы (в столбце) на веб-странице, без перезагрузки страницы и серверных обработок. Полностью клиентский скрипт. Скачайте архивный файл ZIP, распакуйте его и поместите содержимое распакованной папки в ту же папку, где размещается ваша веб-страница.

Внимание! Изменение кода скрипта может повлечь его неработоспособность!

Скопируйте приведённый ниже на странице код и вставьте перед кодом таблицы на веб-странице (обычно между <head> и </head>, хотя можно и между <body> и </body> - но только ПЕРЕД таблицей с данными).

Подключение внешнего скрипта

<script src="tablesort.js"></script>

Также нужны две картинки (изображения) в виде стрелок, которые бы указывали на тип проведенной сортировки конкретного столбца — файл "arrowdown.gif" (картинка сортировки вниз) и файл "arrowup.gif" (картинка сортировки вверх). Образцы картинок в папке "img" прилагаются в архиве и могут быть заменены Вами на любые другие с сохранением имени файла и папки.

В список классов стилей обязательно добавьте описания, параметры которых (цвет, шрифт и отступы) можно редактировать (но их названия редактировать нельзя!):

Код таблицы стилей:

/* Код таблицы стилей */
table.sort {
border-spacing:0.1em;
margin-bottom:1em;
margin-top:1em
}

/* ячейки таблицы */
table.sort td {
border:1px solid #ccc;
padding:0.3em 1em
}

/* заголовки таблицы */
table.sort thead td {
cursor:pointer;
cursor:hand;
font-weight:bold;
text-align:center;
vertical-align:middle
}

/* заголовок отсортированного столбца */
table.sort thead td.curcol {
background-color:#999;
color:#fff
}

Так должна выглядеть сортируемая таблица. Здесь налагаются очень жесткие требования по правильности её оформления. Все дополнительные команды, открывающие и закрывающие теги должны присутствовать. Необходимо указать теги <thead> (шапка таблицы) и <tbody> (основная часть таблицы). Обычно их мало кто использует, но здесь эти теги обязательны! Шапка таблицы также обязательна в указанной форме.

Можно добавлять элементы оформления, но ставить все закрывающие теги в правильной последовательности. Обратите ОСОБОЕ внимание на код сортируемой таблицы, который можно редактировать в деталях. Внимание: регистр букв имеет значение и стили заголовков можно редактировать только через список стилей, иначе скрипт не будет работать!!!

Код таблицы с данными

<table class="sort" style="margin: auto; width:100%;">
<thead>
<tr>
<td>Имя поля 1<td>
<td>Имя поля 2</td>
<td>Имя поля 3</td>
<td>Имя поля 4</td>
<td>Имя поля 5</td>
</tr>
</thead>

<tbody>
<tr>
<td>Кузьменко Иван Кузьмич</td>
<td>студент ХПИ</td>
<td><a href="#">название сайта<a><td>
<td>1984 г. рожд.<td>
<td>мужск.</td>
</tr>
<tr>
<td>Зеленский Владимир Александрович</td>
<td>безработный</td>
<td><a href="#">название сайта</a></td>
<td>1978 г. рожд.</td>
<td>мужск.</td>
</tr>
<tr>
<td>Сидоров Сидор Сидорович</td>
<td>безработный</td>
<td><a href="#">название сайта</a></td>
<td>1899 г. рожд.</td>
<td>мужск.</td>
</tr>
<tr>
<td>Александрова Александра Александровна</td>
<td>ребенок</td>
<td>нет сайта</td>
<td>2020 г. рожд.</td>
<td>женск.</td>
</tr>
<tr>
<td>Шимпанзе Путинка</td>
<td>обезьяна</td>
<td>зоопарк</td>
<td>1950 г. рожд.</td>
<td>ХЛО</td>
</tr>

</tbody>
</table>

Результат:

Нажмите на шапку любого столбца, и он будет отсортирован.

Имя поля 1 Имя поля 2 Имя поля 3 Имя поля 4 Имя поля 5
Кузьменко Иван Кузьмич студент ХПИ Білокуракинський портал 1984 г. рожд. мужск.
Зеленский Владимир Александрович безработный president.gov.ua 1978 г. рожд. мужск.
Сидоров Сидор Сидорович безработный Microsoft.com 1899 г. рожд. мужск.
Александрова Александра Александровна ребенок нет сайта 2020 г. рожд. женск.
Шимпанзе Путинка обезьяна зоопарк 1950 г. рожд. ХЛО