Отсылка формы ввода
Какие различные возможности существуют для отсылки формы ввода? Самый простой путь состоит в том, чтобы отослать форму ввода через электронную почту. Этот метод мы собираемся рассмотреть немного ближе.
Если Вы хотите, чтобы форма ввода была обработана сервером, Вы должны использовать CGI (Common Gateway Interface). Это позволит Вам обрабатывать формы ввода автоматически. Сервер мог бы например создавать базу данных из ввода, полученного от некоторых заказчиков. Другой пример - поисковая страница типа Yahoo. Они обычно имеют форму для выполнения поиска в их базе данных. Пользователь получает ответ сразу после того, как нажималась кнопка отправить. Он не должен ждать, пока люди, поддерживающие эту станцию прочитают ввод и затем найдут запрошенную информацию. Это выполняется сервером автоматически. JavaScript не может делать вещи типа этого.
Вы не можете создавать гостевые книги с помощью JavaScript, потому что JavaScript не способен писать файлы на сервере. Вы можете делать это только через CGI. Конечно Вы можете создавать гостевую книгу с людьми, отвечающими через электронную почту. Хотя Вы должны ввести обратную связь вручную. Это нормально, если Вы не ожидаете получить 1000 ответов по почте день. .
Этот сценарий ниже - простой HTML. Так что никакой необходимости в JavaScript здесь нет! Только, конечно, если Вы хотите проверять, ввод перед отсылкой формы, Вам будет необходим JavaScript. Я должен добавить, что mailto-команда не работает везде - например Microsoft Internet Explorer 3.0 не поддерживает её.
<form method=post action="mailto:your.address@goes.here" enctype="text/plain"> Do you like this page? <input name="choice" type="radio" value="1">Not at all.<br> <input name="choice" type="radio" value="2" CHECKED>Waste of time.<br> <input name="choice" type="radio" value="3">Worst site of the Net.<br> <input name="submit" type="submit" value="Send"> </form>
Свойство enctype="text/plain" используется, чтобы послать простой текст без закодированных частей. Это делает намного проще читение почты.
Если Вы хотите проверить форму прежде, чем она будет послана через сеть, Вы можете использовать обработчик события onSubmit. Вы должны поместить этот обработчик события в тег <form>. Это выглядит так:
function validate() { // check if input ok // ...
if (inputOK) return true else return false; }
...
<form ... onSubmit="return validate()">
...
С этим кодом форма не была бы послана через Internet, если ввод формы был неправилен.