Вы уже умеете работать с элементами форм на JavaScript, обрабатывая их в браузере. Формы, однако, можно также отправлять на сервер, чтобы их обработала серверная часть сайта, написанная на PHP или NodeJS.
Это нужно для того, чтобы добавлять и изменять данные сайта, хранящиеся на сервере.
Давайте посмотрим, как это делаетася. Пусть у нас есть несколько инпутов и кнопка:
<input>
<input>
<input type="submit">
Обернем наши элементы в тег form
.
В этом случае у нас получится форма, которая
по нажатию на кнопку будет отправляться на сервер:
<form>
<input>
<input>
<input type="submit">
</form>
Чтобы на сервере можно было получить данные формы, необходимо каждому инпуту дать свое имя:
<form>
<input name="test1">
<input name="test2">
<input type="submit">
</form>
В этом случае на сервер данные формы придут в виде пар ключ-значение, где ключами будут имена элементов формы, а значениями - введенные данные.
Для того, чтобы отправить форму, нет необходимости в сервере. Вы можете скопировать приведенный код формы в любой файл, запустить его в браузер и нажать на кнопку отправки - форма отправится и страница браузера перезагрузится.
При отсутствии сервера, однако, данные формы никуда не попадут. Поэтому давайте будем проверять работу формы вместе с сервером. Пока вы не знаете никаких серверных языков, поэтому потренируемся отправлять форму с помощью нашего учебного HTTP сервера.
Давайте разместим нашу форму в некотором
файле так, чтобы она была доступна по адресу
http://localhost:8080/form.html
:
<form>
<input name="test1">
<input name="test2">
<input type="submit">
</form>
Добавим нашей форме атрибут action
,
указывающий адрес отправки нашей формы:
<form action="/handler/">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
Теперь в файле server.js
напишем обработчик
адреса отправки формы:
export default {
'/handler/': function() {
return 'form data received';
}
}
В параметр нашего обработчика попадут отправленные данные формы:
export default {
'/handler/': function(data) {
console.log(data); // выведется в консоль сервера
return 'form data received';
}
}
Создайте форму и файл для ее обработки. Отправьте форму и проверьте, что данные действительно пришли на сервер.