PHP в деталях



         

Ручная сортировка в веб-интерфейсе


DL
30.5.2002

Для новостного сайта или каталога чаще всего применяется структура базы данных с отдельной таблицей рубрик. Это удобно и просто: автоматически считается количество статей (сайтов) в рубриках, рубрики легко редактируются, создаются или удаляются. Идилию нарушает часто возникающая необходимость сортировки списка рубрик в заданном порядке.

Приходится либо писать этот список в HTML вручную, либо создавать в таблице в базе данных дополнительное поле для сортировки, в которое нужно писать числа опять же вручную. Это делается либо через интерфейс управления базой данных, либо дополнительное текстовое поле делается в форме редактирования рубрики. Это, конечно, неудобно для пользователя, а тем более если пользователей, которым иногда требуется менять порядок сортировки, несколько.

Решения для данной задачи есть. Из того, что я видел, это [] фирмы []. Однако он требует настройки ActiveX или VB Script и работает только в IE 6.0.

На самом деле, можно обойтись меньшими жертвами, используя простой JavaScript, который будет работать и в IE 5.0, и в Опере 5.12.

Итак, что нужно для удобного управления сортировкой рубрик? Впрочем, не только рубрик, сортировать вручную данные из базы приходится часто, просто это не делается из-за отсутствия удобного инструмента. Во-первых, порядок сортировки задаётся в отдельном поле в таблице. Во-вторых, его содержимое должно меняться автоматически, скриптами, а не людьми. Пользователям гораздо удобнее видеть не цифры, а список рубрик и кнопки "вверх" и "вниз". Эта схема широко применяется в самых разных программах:

Сортировка колонок в программе TheBat

Ещё один пример потенциального использования. На ныне почившем сайте [] был конкурс "10 слов, которые потрясли мир". Надо было в нормальном предложении, состоящем из 10 слов так переставить их, чтобы получилось смешно. Реализовано это было неважно: пользователю приходилось вводить в текстовое поле номера слов, причём нумерация шла с 0(!), что вызывало большие затруднения.




Содержание  Назад  Вперед