Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
модуль пхп.doc
Скачиваний:
10
Добавлен:
29.08.2019
Размер:
713.22 Кб
Скачать

Создание базы данных с помощью html-формы

Как известно, HTML-форма, это - блок HTML-страницы позволяющий вводить данные из Web-браузера на удаленный или локальный Web-сервер. Блок формы помечается тэгами <form...> и </form>. Поля внутри HTML-формы могут иметь разные типы, например список или текстовое поле. В листинге 1 показан пример описания формы, а на рис. 1 вид этой формы в Web-браузере.

Листинг 1. Код html-формы

<form method="post" action="..."> A: <input type="text" name="A" size="10" /><br /> B: <select name="B" multiple="multiple"> <option value="b1" selected="selected">b1</option> <option value="b2">b2</option> </select><br /> C: <input type="radio" name="C" checked="checked" value="c1" />c1 <input type="radio" name="C" value="c2" />c2<br /> D: <input type="checkbox" name="D" checked="checked" value="d1" />d1 <input type="checkbox" name="D" value="d2" />d2<br /> <input type="submit" value="Submit" /> <input type="reset" value="Reset" /> </form>

Рис. 1. Вид HTML-формы

Начало формы

A:  B:         C:  c1  c2 D:  d1  d2  

Конец формы

HTML-форма обычно используется для ввода только одной записи в таблицу базы данных. Каждый атрибут name определяет имя соответствующего поля формы или вводимой записи. Одновременно, для сервера Smans, это же имя рассматривается как имя колонки в соответствующей таблице. Дополнительная информация, обычно невидимая для пользователя, передается серверу Smans благодаря управляющим полям HTML-формы. Наиболее важным из управляющих полей является $Table. Атрибут action в дескрипторе form задает имя Smans-сервлета /servlet/record, принимающего и обрабатывающего HTML-форму с управляющими полями. Например:

<form action="../servlet/record" method="post"> <input type="hidden" name="$Table" value="Order" /> ... </form>

Поле $Table обозначает таблицу формируемую в базе данных. Рассмотрим пример записывающей управляющей HTML-формы, формирующий таблицу Order в листинге 2 и рис. 2.

Листинг 2. Код записывающей html-формы

<form action="../servlet/record" method="post"> <input type="hidden" name="$Table" value="Order" /> Date: <input type="text" name="Date" /><br /> Name: <input type="text" name="Name" /><br /> Phone: <input type="text" name="Phone" /><br /> Company: <input type="text" name="Company" /><br /> Product Type: <input type="text" name="Product Type" /><br /> Product Name: <input type="text" name="Product Name" /><br /> Quantity: <input type="text" name="Quantity" /><br /> <input type="submit" value="Submit Data"> <input type="reset" value="Reset Form"> </form>

Рис 2. Вид записывающей HTML-формы

Начало формы

Date:  Name:  Phone:  Company:  Product Type:  Product Name:  Quantity:   

Конец формы

Каждая входная запись должна иметь первичное ключевое поле(я). В рассматриваемом случае таблица Order будет иметь ключевое поле Order. Так как поле Order отсутствует в HTML-форме, значение первичного ключевого поля Order автоматически генерируется сервером Smans как номер записи (ряда) таблицы в увеличивающемся порядке. Если таблицы Order в базе данных еще нет, она будет создана. В случае, если таблица уже существует с другими колонками, к ней будут добавлены новые колонки, описываемые в форме. В результате таблица, как минимум, будет иметь следующий список колонок:

Order Date Name Phone Company Product Type Product Name Quantity

Вы можете легко изменить выводимое сообщение или последующие действия в случае успешного ввода записи с помощью поля $Forward. Например:

<input type="hidden" name="$Forward" value="Confirm.html" />

Все управляющие поля можно называть также управляющими параметрами. Кроме перечисленных выше, используются параметры $PKey. Они полезны, если таблица имеет несколько первичных ключевых колонок, когда необходимо предотвратить повторное появление нескольких значений колонок. Каждый параметр $PKey указывает на имя обычного параметра (поля) в HTML-форме, например:

<form action="../servlet/record" method="post"> <input type="hidden" name="$Table" value="Product"> <input type="hidden" name="$PKey" value="Product Type" /> <input type="hidden" name="$PKey" value="Product Name" /> <input type="text" name="Product Type" /> <input type="text" name="Product Name" /> ...

В дистрибутиве сервера Smans есть соответствующие примеры, они находятся в директории hforms. Простейшие примеры реализованы на HTML-страницах wapp/hforms/Order.html иwapp/hforms/Product.html. Обратиться к странице из Web-браузера можно так: http://<domain>[/<application>]/hforms/Order.html. После ввода записи, сервер Smans выдаст некоторое сообщение, по умолчанию:

Data recorded. Thanks! Please return back and continue.