• PHP
  • JavaScript

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

Добрый день! До полного счастья осталось «добить» два вопроса.

За основу взята форма «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 из этой папки не подключены, так как плывет весь сайт.

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

Алексей
Алексей
Всем спасибо, вопрос закрыт!
Рабочий вариант.
Чтобы не плодить кучу форм для одной страницы, названия (заголовки) формы организованы с помощью атрибута — 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>
Алексей
Алексей
Сюда(
<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>
Я полный чайник, понимаю плохо — где ошибки. Подправьте пожалуйста.
Алексей
Алексей
Всем доброго дня! Если с этим трудности, может этот вопрос можно как-то организовать по другому?
Алексей
Алексей
Счастье совсем близко)))) 2-й вопрос решился
body{padding: 0 !important;}
Остался 1, Помогите люди добрые)))