Современный сайт в Internet немыслим без организации системы обратной связи с посетителями. Формы обратной связи разнообразны: это могут быть книги отзывов, опросные системы, системы анкетирования, электронная почта. Наиболее интересными с технической точки зрения мне представляются опросные системы. Один из вариантов построения такой системы опросов с использованием Internet Information Server, Active Server Pages и SQL Server представлен в данной статье.

Рассматриваемая опросная система предоставляет посетителю две основные возможности:

  • возможность анонимного ответа на вопрос. Ответ может принимать как единственное значение (для этого используется переключатель типа RADIO), так и множественное (переключатель типа CHECKBOX). При этом посетитель не может участвовать в опросе дважды — такой запрет позволяет наложить механизм модулей настройки Cookies
  • возможность просмотра результатов опроса. Данные экраны обычно встраиваются в HTML-страницы в соответствии с общим дизайном сайта.

    Перечень вопросов, составляющих опрос, перечень возможных ответов на них и счетчики ответов хранятся в двух таблицах SQL Server. Определение таблиц приведено в Листинге 1.

Экран 1. Выбор вариантов ответа.

Приложение ASP для организации системы опросов также состоит из двух модулей: модуль Questions.asp — главная страница приложения, а в Question.inc реализуется механизм опроса. Текст Questions.asp приведен в Листинге 2. Страница может вызываться с параметром Question — номером вопроса. В этом случае в зависимости от того, голосовал ли посетитель раньше, ему предлагается или проголосовать (см. Экран 1) или посмотреть результаты (см. Экран 2). При вызове страницы без параметра показывается лишь перечень предлагаемых вопросов. Результат вызова Questions.asp без параметров представлен на Экране 3.

Экран 2. Результаты опросы.

Текст функции PollQuestion модуля Questuion.inc приведен в Листинге 3. Логика работы функции следующая:

  • определение типа вызова и, в зависимости от этого, либо построение формы (тег FORM) для опроса, либо отражение результатов опроса в виде процентного графика (тег TABLE);
  • изменение счетчика ответов на вопрос.
Экран 3. Перечень вопросов.

Результат возвращается в виде строки кода HTML, которую можно использовать в любой ASP-странице.

Две таблицы SQL Server (10 полей), два модуля ASP (120 строк кода) — вот и все, что нужно для организации опросов на любом Internet-сайте.

Ильдар Даутов — начальник отдела АКБ «Заречье» в Казани. Имеет сертификаты MCDBA и MCT. С ним можно связаться по адресу: dia@mail.zarech.ru.