Смекни!
smekni.com

Учебник Macromedia Dreamweaver (стр. 132 из 135)

С раскрывающимся списком все несколько сложнее. Выделите его и нажмите кнопку Dynamic. В появившемся на экране диалоговом окне Dynamic List/Menu щелкните кнопку с изображением молнии, расположенную правее поля ввода Select Value Equal To. После этого на экране опять же появится диалоговое окно Dynamic Data; выберите в иерархическом списке Field пункт Category, соответствующий одноименному полю, и нажмите кнопку ОК. Теперь остается только нажать кнопку ОК окна Dynamic List/Menu.

Можно сделать еще проще — перетащить нужное поле из панели Bindings на соответствующий ему элемент управления. Автор рекомендует вам так и поступать в дальнейшем.

Теперь нужно создать поведение update Record, которое, собственно, и реализует заполнение формы и обновление значений полей редактируемой записи. Выберите пункт Update Record меню серверных поведений панели Server Behaviors. На экране появится диалоговое окно Update Record.

Выберите в раскрывающемся списке Connection базу данных, в списке Table То Update — таблицу, запись которой будет обновляться, а в списке Select Record From — набор записей, из которого будет взята запись для заполнения формы. В нашем случае это будет соответственно Library, Sentences и Sentences (соответственно, одноименные таблица и набор записей).

В поле ввода Unique Key Column задается поле набора записей, по которому нужная нам запись будет однозначно идентифицироваться. В нашем случае — это ключевое поле ID. Если это числовое поле (а поле ID — числовое), включите флажок Numeric, в противном случае — отключите его.

В поле ввода After Updating, Go To вводится интернет-адрес страницы, на которую будет осуществлен переход после успешного изменения записи. Введите в него sentences. asp. Вы также можете щелкнуть кнопку Browse и выбрать нужную страницу в диалоговом окне Select File.

В раскрывающемся списке Get Values From выбирается форма, из которой будут взяты значения для обновления записи.

В списке From Elements перечислены все элементы управления, находящиеся в выбранной форме. Вы можете выбрать любой из них и задать для него поле таблицы, куда будут помещены содержащиеся в нем данные, и тип отправляемых данных (текст, число, дата и т. п.).

Поле таблицы выбирается в раскрывающемся списке Column. Пункт <ignore> данного списка позволяет проигнорировать значение этого элемента управления (т. е. оно не будет помещено в поле таблицы).

Тип данных указывается в раскрывающемся списке Submit As. В нем доступны следующие пункты:

· Text — текстовые данные;

· Numeric — числовые данные;

· Date — значение даты;

· Date MS Access — значение даты, предназначенное для Microsoft Access;

· Checkbox Y,N — логическое значение, преобразуемое в символы "Y" ("да") или "N" ("нет");

· Checkbox 1,0 — логическое значение, преобразуемое в числа 1 ("да") или 0 ("нет");

· Checkbox -1,0 — логическое значение, преобразуемое в числа -1 ("да") или 0 ("нет");

· Checkbox MS Access — логическое значение, предназначенное для Microsoft Access.

Задав все нужные данные, не забудьте нажать кнопку ОК.

Сохраните готовую страницу EditSentence.asp и проверьте ее в действии. Для этого опубликуйте сайт на Web-сервере, откройте страницу Sentences.asp в Web-обозревателе и попробуйте отредактировать какое-либо высказывание. Если страница изменения записи почему-то не работает, проверьте, все ли правильно вы сделали.

Средства удаления записи

Осталось создать средства удаления ненужных высказываний из таблицы Sentences. Что ж, и такое иногда приходится проделывать...

Чтобы удалить ненужную запись, нам также понадобится серверная страница. Мы поместим на этой странице содержимое удаляемой записи (это хороший тон Web-программирования) и кнопку, запускающую процесс удаления записи. А для перехода на эту страницу мы поместим на странице Sentences.asp еще одну гиперссылку.

Откройте страницу Sentences.asp. Поставьте текстовый курсор в четвертую ячейку второй строки таблицы и наберите текст "Удалить". Выделите только что введенное слово и наберите в поле ввода интернет-адреса редактора свойств такой текст:

DeleteSentence.asp?ID=

Далее переключитесь в режим отображения кода и перетащите из панели Bindings в место, находящееся точно после знака "=", поле ID набора записей. Интернет-адрес гиперссылки примет такой вид:

Мы уже знаем, что означает этот код.

DeleteSentence.asp?ID=<%=(Sentences.Fields.Item("ID").Value)%>

Теперь сохраните и закройте страницу Sentences.asp. Создайте новую серверную страницу, введите в нее поясняющий текст и сохраните под именем DeleteSentence.asp в папке Admin. Но не закрывайте только что созданную страницу — мы ей сейчас займемся.

Сначала нужно создать набор записей, из которого будет взята запись для отображения на этой странице. Этот набор также должен содержать одну-единственную запись, поэтому нам придется задать фильтр по значению поля счетчика ID таблицы sentences, которое должно равняться значению параметра гиперссылки ID, переданному от страницы Sentences.asp. Кроме того, этот набор записей должен быть сложным, аналогичным тому, что мы создали на странице Sentences.asp. Создайте его, а если у вас возникнут затруднения, обратитесь к спасительной главе 17. Текст SQL-запроса будет таков:

SELECT Sentences.ID, Content, Name FROM Sentences, Categories

WHERE Sentences.ID = MMColParam AND Sentences.Category=Categories.ID

Здесь MMCoiParam — имя параметра SQL-запроса, соответствующего параметру гиперссылки ID. Его значение, соответственно, будет

Request.QueryString("ID").

Теперь поместим на страницу динамический текст, привязанный к полю Content набора записей. В следующем абзаце наберем слово "Категория", поставим неразрывный пробел и поместим динамический текст, привязанный к полю Name.

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

Теперь нам нужно создать поведение Delete Record. Для этого выберем одноименный пункт в меню серверных поведений панели Server Behaviors. На экране появится диалоговое окно Delete Record.

Выберите в раскрывающемся списке Connection базу данных, в списке Delete From Table — таблицу, запись которой будет удалена, а в списке Select Record From — набор записей, из которого будет взята запись для отображения ее содержимого на странице. В нашем случае это будет соответственно Library, sentences и Sentences (таблица и набор записей у нас называются одинаково).

В поле ввода Unique Key Column задается поле набора записей, по которому нужная нам запись будет однозначно идентифицироваться. В нашем случае — это ключевое поле ID. Если это числовое поле (а поле ID — числовое), включите флажок Numeric, в противном случае — отключите его.

В раскрывающемся списке Delete By Submitting выбирается кнопка, после нажатия которой произойдет удаление записи.

В поле ввода After Deleting, Go To вводится интернет-адрес страницы, на которую будет осуществлен переход после успешного удаления записи. Введите в него sentences. asp. Вы также можете щелкнуть кнопку Browse и выбрать нужную страницу в диалоговом окне Select File.

После ввода всех данных не забудьте нажать кнопку ОК. Сохраните страницу DclcteSentence.asp и проверьте ее. Введите какую-нибудь запись и попробуйте ее удалить. Если она почему-то не удалится, проверьте, все ли вы сделали правильно.

Страница входа на сайт

Поскольку наш сайт будет поддерживать разграничение доступа, нам нужно обязательно сделать страницу входа на сайт. А, кроме того, нам необходимо создать в базе данных Library.asp таблицу, которая будет хранить список зарегистрированных посетителей.

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

· Name — имя посетителя (текстовое, 20 символов, ключевое);

· Password — пароль посетителя (текстовое, 20 символов);

· Grants — права посетителя (текстовое, 20 символов).

· первыми двумя полями все ясно. Поговорим о третьем поле — Grants. Dreamweaver, точнее, его поведения, "отвечающие" за разграничение доступа, принимают текстовые значения, говорящие о правах посетителя. Таких значений может быть, как минимум, три:

· "Administrator" — администратор сайта, полный доступ ко всем данным сайта;

· "user" - посетитель, доступ к открытым данным сайта, предназначенным для "обычных" посетителей сайта;

· "Guest" — "гость" сайта, минимальный доступ к данным сайта.

Основываясь на этих значениях, поведения Dreamweaver принимают решение, допускать ли посетителя до какой-либо страницы сайта. Конечно, вы можете задать свои значения, но эта троица присутствует практически во всех списках доступа.

Чтобы не усложнять чрезмерно наш сайт, давайте ограничимся двумя типами прав посетителей: администратором (значение "Administrator" поля Grants) и обычным посетителем (значение "user"). Администратор будет один и может править любые данные, сохраненные в базе Library.asp, a обычный посетитель сможет только их просматривать.

Итак, мы создали новую таблицу. Но подождите ее сохранять. Задайте для поля Grants значение по умолчанию "user", чтобы вновь зарегистрировавшиеся посетители сразу же получили соответствующие права доступа. Вот теперь можете закрывать и сохранять новую таблицу. Назовите ее Users.

После этого откройте только что созданную таблицу и введите в нее одну запись. Значения ее полей будут такими:

· поле Name — "Admin";

· поле Password — "Admin" (не будем заботиться о секретности пароля — все равно наш сайт учебный);

· поле Grants — "Administrator".

Теперь можно приступать к созданию страницы входа на сайт. Введите в нее поясняющий текст и назовите Login.asp. Причем сохраните ее в корневой папке сайта, а не в папке Admin, — мы используем ее для входа на сайт и администраторов, и обычных посетителей.