Madeas
@Madeas
UI / UX Designer, Frontend Developer

Как сделать одну почтовую форму для 7-ми услуг?

Здравствуйте! Нужен совет и помощь js/php-мастера.
На странице 7 услуг, для каждой из которых нужно создать собственную форму заказа.

Вариант такой: создать 7 форм на странице, у каждой добавить инпут
<input type="hidden" name="formData" value="заголовок для формы">
который будет содержать собственный заголовок.

в php выводим:
if (isset($_POST['formData'])) {$formData = $_POST['formData'];}
...
...
$subject = "$formData";
$message = "$formData\n\nОткуда: $email \n\nОтправитель: $name \n\nТелефон: $phone \n\nСообщение: $message";

Итог: На страничке 7 карточек, под каждой кнопка вызова модального окошка с формой. Фактически, сейчас 7 кнопок = 7 окошек = 7 форм. По сути, все формы отличаются только скрытым заголовком, который выводится в письме.
Вариант не ахти конечно, поскольку код превращается в огромную портянку...

Вопрос - как сделать проще? Желательно создать одну форму, общую для всех и, чтобы при клике по каждой из (семи) кнопок, менялся бы заголовок в поле отправки. Подскажите, реально ли это и как реализовать?
  • Вопрос задан
  • 117 просмотров
Решения вопроса 2
Anadi
@Anadi
Если ответ Вам помог мой, решением отметье его!
Как хотя бы это на странице должно выглядеть?
Ответ написан
mnml-by
@mnml-by
Молодой и талантливый
Я бы создал какой-нибудь дата-атрибут у кнопки с помощью которой мы будем вызывать модальное окно, в котором будет храниться наш заголовок, например, data-card="Карточка 1" data-card="Карточка 2".
Вот вариант на Jquery
$('.button[data-card]').click(function () {
     let title = $(this).attr('data-card'); //Достаем значение дата атрибута
     $('.form .title').html(title); //Вставляем его в нам заголовок формы
     $('input[name=formData]').val(title); //Также вставляем значение дата атрибута в скрытый инпут, для передачи в обработчик формы
      //И только потом должно происходить открытие модального окна
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
20 апр. 2024, в 09:15
8000 руб./за проект
20 апр. 2024, в 08:39
100000 руб./за проект
20 апр. 2024, в 08:24
1500 руб./за проект