Страница для сбора данных с форм обратной связи?

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

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

Читал и пока не пришёл ни к чему.
А это живой проект, с теми самыми формами.

<form action="action.php" method="post">

		<label for="fname">Ваше имя для связи</label>
		<input type="text" id="fname" name="firstname" placeholder="Ваше имя">

		<label for="fname">Номер телефона</label>
		<input type="text" id="phone" name="phone" placeholder="Телефон для связи">


		<label for="subject">Ваше сообщение</label>
		<textarea id="subject" name="subject" placeholder="Уточните заказ"></textarea>

		<button type="submit" value="Заказать">Заказать</button>

	</form>
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
@zordq Автор вопроса
Было решение не использовать CMS или фреймворки, поэтому для реализации требовались нестабильные и нестандартные механики. Переосмыслили. Была реализована возможность отправки в телеграм, что удобнее для клиента. Спасибо всем.
Вот тут, описание.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
xEpozZ
@xEpozZ
Веб-разработчик
Давайте расскажу как делается, а вы сами додумаете?

1. Форма ваша будет как обычно, но лучше вместо button type="submit" использовать button type="button". Для чего? Чтобы не отправилась случайно вместе с переадресацией страницыю Добавьте ему id="submit_button", например
2. Качайте jQuery или возьмите библиотеку для работы с AJAX запросами.
3. Ловите событие click для контрола #submit_button.
4. Валадируете введенные данные (телефон, имя, коммент) с помощью каких-нибудь библиотек или без них
5. Делаете POST запрос на ваш сервер (site.ru/form_submit.php)
6. На сервере проверяете входящие данные еще раз.
7. В случае успеха: пишите данные в бд, отправляете почту.
8. В случае ошибки валидации возвращаете в запрос строки, которые напишите в поле "ошибки при заполнении формы"; или понятная для вас структура, чтобы подсветить конкретное поле, в котором была найдена ошибка.
9. Обрабатываете ответ сервера и делаете скрытие формы/показ модалки
Ответ написан
Комментировать
glaphire
@glaphire Куратор тега PHP
PHP developer
1) Разберитесь как отправлять данные формы на бекенд через ajax (как собрать данные формы, как отправить на обработчик (урл, который указывается в action)
2) разберитесь, как на бекенде создать этот урл (вы в комментариях упоминали, что хотите это сделать на yii2 или laravel) - создаете route (т.е. урл, на который вы это отправляете с фронта), создаете action (метод контроллера, который связан с этим route)
3) проверяете, что все данные формы приходят в этот action (вынимаете данные из $_POST и пересылаете себе же в респонс для ajax). Если с этим все ок, то идете дальше, если не ок, то разберитесь полностью с этим шагом
4) разбираетесь, как в этом фреймворке сохранять данные в базу (создаете миграцию с описанием таблицы), создаете модель под эту таблицу, в action записываете данные в базу. Отдаете респонс, что все ок и данные сохранились
5) На бекенде создаете отдельную страницу админки, где берете все формы из базы данных и выводите их списком. Создание админки это отдельная тема и не самая простая)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы