Как передать значение атрибута формы обратной связи в тело письма?

Алексей
Алексей
2K
4
Содержание:
  1. Комментарии
Добрый день! До полного щастья осталось «добить» два вопроса.
За основу взята форма «feedback-two-forms-with-captcha»
На одной странице несколько кнопок вызова формы в модальном окне.
Форма одна, чтобы не плодить кучу форм названия (заголовки) формы организованы с помощью атрибута — data-title (
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#feedbackFormModal" data-title="Название заголовка">
) и скрипт
$('[data-toggle="modal"]').click(function (e) {
  e.preventDefault();
  var idSelector = $(this).attr('data-target');
  var title = $(this).attr('data-title');
  $(idSelector).find('.modal-title').text(title);
});

1) Подскажите пожалуйста, как данные из атрибута data-title=«Название заголовка» передать на почту для идентификации формы. Что нужно дописать в main.js, process.php....?

2) При открытии формы в модальном окне справа появляется отступ и сайт смещается. Закрывая окно сайт немного сдвигается обратно, но отступ все равно остается. где и как копать чтобы найти причину?
Форма находится в корне в папке «feedback» Стили bootstrap.css из этой папки не подключены, так как плывет весь сайт.

Комментарии:

  1. Алексей
    Алексей
    27.10.2018, 16:43
    Всем спасибо, вопрос закрыт!
    Рабочий вариант.
    Чтобы не плодить кучу форм для одной страницы, названия (заголовки) формы организованы с помощью атрибута — data-argument.
    1) добавляем атрибут в кнопку
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#feedbackFormModal" data-argument="Название заголовка">
    )
    2) вставляем на странице скрипт
    <script>
        $('[data-toggle="modal"]').click(function (e) {
          e.preventDefault();
          var idSelector = $(this).attr('data-target');
          var title = $(this).attr('data-argument');
          $(idSelector).find('.modal-title').text(title);
          $('#feedbackForm').prepend('<input type="hidden" name="argument" value="' + title + '">');
        });
      </script>
    3) Принимаем в process.php
    if (isset($_POST['argument'])) {
      $argument = filter_var($_POST['argument'], FILTER_SANITIZE_STRING);
    }
    Выполняем замену
    $bodyMail = str_replace('%email.argument%', isset($argument) ? $argument : '-', $bodyMail);
    4) Передаем на почту через email.tpl
    Заявка с формы: <b>%email.argument%</b>
    1. Алексей
      Алексей
      27.10.2018, 13:06
      Сюда(
      <h3 class="modal-title" id="myModalLabel">Форма связи</h3>
      )подставляется заголовок формы. Его нам и нужно передать.
      Если правильно понимаю, то:
      1) создаем скрытое поле в форме в которое переходит название атрибута data-title=«Задача»
      <input type="hidden"  name="modal-title" id="myModalLabel" value="">
      2) Принимаем в process.php
      if (isset($_POST['modal-title']))
      3) Передаем на почту через email.tpl
      <p>Название формы: [[+modal-title]]</p>
      Я полный чайник, понимаю плохо — где ошибки. Подправьте пожалуйста.
      1. Алексей
        Алексей
        27.10.2018, 10:53
        Всем доброго дня! Если с этим трудности, может этот вопрос можно как-то организовать по другому?
        1. Алексей
          Алексей
          25.10.2018, 18:16
          Счастье совсем близко)))) 2-й вопрос решился
          body{padding: 0 !important;}
          Остался 1, Помогите люди добрые)))
          Войдите, пожалуйста, в аккаунт, чтобы оставить комментарий.