Проект узла "Читатели"
Давайте займемся проектированием нашего решения, обеспечивающего обратную связь с читателями. Я создам небольшой Web-узел, который буду называть узлом "Читатели". Он и будет представлять наш интерактивный Web-документ, а его страницы и будут являться страницами нашего документа. Основная интерактивность будет связана со страницей, озаглавленной "Страница читателей". Взгляните, как она выглядит, и тогда, надеюсь, станет понятно, что могут делать пользователи, работающие с этим документом:
Рис. 11.2. "Страница читателей" интерактивного Web-документа
Попадая на эту страницу, пользователь может:
- Выбрать из списка книгу, которая его интересует в текущий момент, и по которой он хочет вести дискуссию, - задать вопрос, прочесть отзыв и прочее. Заметьте, для того чтобы обеспечить пользователю такую возможность, список книг должен быть автоматически сформирован на основе информации, хранящейся в базе данных офиса РР. Формирование списка будет обеспечено программным путем в момент открытия страницы.
- В двух окнах ввода, расположенных на странице, пользователь может задать вопрос и/или написать отзыв по выбранной им книге. В раскрывающемся списке он может задать численное значение оценки книги. Значение 0, установленное по умолчанию, означает, что пользователь не собирается оценивать книгу. По нажатию командной кнопки с надписью "Послать вопрос и/или отзыв и/или оценку" вопрос, отзыв и оценка, если они заданы, передаются в базу данных. Одновременно в базу данных передается информация о книге, с которой связаны эти характеристики, и о пользователе, задавшем эти характеристики.
- В разделе просмотра информации, расположенном во второй части страницы, пользователю доступны три командные кнопки, нажав каждую из которых он может:
- Посмотреть по выбранной книге ответы, на заданные им ранее вопросы.
- Посмотреть все вопросы и ответы, которые задавались всеми пользователями по данной книге.
- Посмотреть все отзывы и весь спектр поставленных оценок.
Теперь, когда цели ясны, давайте посмотрим, как спроектировать подобный узел с такой страницей, и как заставить, чтобы все это работало.