Документация Запланировать пилот

Добавьте HTML-форму с помощью Formspree

Почти каждому сайту, будь то простая портфолио-страница на HTML или сложное приложение на JavaScript, понадобится форма для сбора пользовательских данных. Formspree ↗ это бэкенд-сервис для обработки и хранения данных форм, позволяющий разработчикам добавлять формы на сайт без написания серверного кода или функций.

В этом руководстве вы создадите <form> с помощью обычных HTML и CSS и добавить ее на статический HTML-сайт, размещенный на Cloudflare Pages. Обратитесь к Руководство по началу работы чтобы ознакомиться с платформой. Вы будете использовать Formspree для сбора отправленных данных и рассылки уведомлений по электронной почте при поступлении новых заявок, без необходимости писать код на JavaScript или на стороне сервера.

Настройка

Для начала создайте новый репозиторий GitHub ↗. Затем создайте новый локальный каталог на своем компьютере, инициализируйте git и подключите расположение GitHub в качестве удаленного репозитория:

# create new directory
mkdir new-project
# enter new directory
cd new-project
# initialize git
git init
# attach remote
git remote add origin [email protected]:<username>/<repo>.git
# change default branch name
git branch -M main

Теперь можно приступить к работе в new-project директорию, которую вы создали.

Разметка веб-сайта

В этом примере проекта используется только обычный HTML. На главной странице будет форма обратной связи, принимающая имя, адрес электронной почты и сообщение.

Код формы:

<form method="POST" action="/">
	<label for="name">Full Name</label>
	<input id="name" type="text" name="name" pattern="[A-Za-z]+" required />

	<label for="email">Email Address</label>
	<input id="email" type="email" name="email" required />

	<label for="message">Message</label>
	<textarea id="message" name="message" required></textarea>

	<button type="submit">Submit</button>
</form>

action атрибут определяет, куда отправляются данные формы. Позже вы измените это, чтобы отправлять данные формы в Formspree. Все <input> теги должны иметь уникальный name чтобы получить данные пользователя. for и id значения должны совпадать, чтобы связать <label> с соответствующим <input> для инструментов специальных возможностей, таких как программы чтения с экрана.

Чтобы добавить эту форму на сайт, сначала создайте public/index.html в каталоге вашего проекта. public директория должна содержать все ресурсы фронтенда, а index.html файл будет служить главной страницей сайта.

Скопируйте и вставьте следующее содержимое в public/index.html файл, который включает форму, показанную выше:

<html lang="en">
	<head>
		<meta charset="utf8" />
		<title>Form Demo</title>
		<meta name="viewport" content="width=device-width,initial-scale=1" />
	</head>
	<body>
		<!-- the form from above -->

		<form method="POST" action="/">
			<label for="name">Full Name</label>
			<input id="name" type="text" name="name" pattern="[A-Za-z]+" required />

			<label for="email">Email Address</label>
			<input id="email" type="email" name="email" required />

			<label for="message">Message</label>
			<textarea id="message" name="message" required></textarea>

			<button type="submit">Submit</button>
		</form>
	</body>
</html>

Теперь у вас есть HTML-документ с формой обратной связи, содержащей несколько полей для заполнения пользователем. Однако вы ещё не задали action атрибут на сервер, способный обработать данные формы. Вы сделаете это в следующем разделе этого руководства.

Бэкенд Formspree

HTML-форма готова, однако при её отправке данные будут отправлены в виде POST запрос к / URL. По этому URL не существует сервера для обработки данных, поэтому произойдёт ошибка. Чтобы это исправить, создайте новую форму Formspree и скопируйте её уникальный URL в action.

Чтобы создать форму Formspree, зарегистрируйтесь на аккаунт на Formspree ↗.

Далее создайте новую форму с помощью + Новая форма кнопку. Назовите его Contact-us form и обновите email получателя на адрес, на который должны приходить отправленные формы. Затем выберите Создайте форму.

Создание формы Formspree

Затем появятся инструкции о том, как интегрировать новую форму.

Конечная точка Formspree

Скопируйте Form Endpoint URL и вставьте его в action атрибут формы, которую вы создали выше.

<form method="POST" action="https://formspree.io/f/mqldaqwx">
	<!-- replace with your own formspree endpoint -->
</form>

Теперь при отправке формы вы должны попасть на страницу благодарности. Данные формы будут отправлены в ваш аккаунт на Formspree.io ↗.

Теперь можно настроить логику обработки формы, чтобы изменить страница редиректа ↗, обновите адрес электронной почты для уведомлений ↗, или добавить такие плагины, как Google Sheets ↗, Slack ↗ и многое другое.

Дополнительную помощь по настройке Formspree см. в следующих ресурсах:

Развёртывание

Теперь можно развернуть проект.

Если вы еще этого не сделали, сохраните прогресс в git и затем отправьте коммит (или несколько коммитов) в репозиторий GitHub:

# Add all files
git add -A
# Commit w/ message
git commit -m "working example"
# Push commit(s) to remote
git push -u origin main

Теперь ваш код находится в репозитории GitHub, а значит, Pages тоже имеет к нему доступ.

Если это ваш первый проект Cloudflare Pages, ознакомьтесь с Начало работы для получения полного руководства по настройке. После выбора нужного репозитория GitHub необходимо настроить проект со следующими параметрами сборки:

После выбора Save and Deploy, начнется первое развертывание вашего проекта Pages. В случае успеха вы увидите уникальный *.pages.dev поддомен и ссылку на демонстрацию вашего проекта.

В этом руководстве вы создали и развернули сайт с помощью Cloudflare Pages и Formspree для обработки отправки форм. Вы создали статический HTML-документ с формой, которая взаимодействует с Formspree для обработки и хранения запросов на отправку и отправки уведомлений.

Если вы хотите просмотреть полный исходный код этого приложения, вы можете найти его на GitHub ↗.

Запросите бесплатный пилот

Запланировать пилот