Задать вопрос
@mUchenik

Как донастроить mail.php?

Всем привет!
Сверстал страницу html, в ней есть разделы и блоки внутри раздела, так же есть
В данный момент, подтягиваются интупы и название кнопки.

Подскажите пожалуйста, возможно ли как донастроить php.mail так, что бы подтянуть название раздела общего и название конкретного блока с которого отправлена форма (название блока это h2 с классом).

Собственно сам mail.php который я использую ( не уверен, что на сегодняшний день это решение хорошее, но других под текущую задачу, пока не знаю):
$frm_name  = "adress@domen.ru"; // С какой почты отпавляю
$recepient = "adress@domen.ru"; // На какую почту приходит
$sitename  = "site.ru"; // название сайта
$subject   = "Новая заявка с сайта \"$sitename\""; //Заголовок письма

$name = trim($_POST["name"]); // ФИО того кто заполнил форму, попадает в письмо
$calendar = trim($_POST["calendar"]); // моя попытка добавить заголовок раздела (указал класс h2) не работает
$phone = trim($_POST["customer_phone"]); // Номер телефона, который ввел пользователь, попадает в письмо
$formname = trim($_POST["formname"]); // Название кнопки которая попадает в письмо
$mail = trim($_POST["email"]); // почта указанная пользователем

$message = "
Название блока формы: $calendar <br>
Форма: $formname <br> 
Имя: $name <br>
Телефон: $phone<br>
E-mail: $mail
";

mail($recepient, $subject, $message, "From: $frm_name <$email>" . "\r\n" . "Reply-To: $email" . "\r\n" . "X-Mailer: PHP/" . phpversion() . "\r\n" . "Content-type: text/html; charset=\"utf-8\"");

JS обработчик :

$(".btn").click(function() {
    $("#callback h4").html($(this).text());
    $("#callback input[name=formname]").val($(this).text());
}).magnificPopup({
    type:"inline",
    mainClass: 'mfp-forms'
});


<div class="col-md-8 col-md-offset-2 text-center gtco-heading ">
	<h2 class="calendar">Этот текст хочу отобразить в письме</h2>
	<p></p>
</div>

<div class="rotate-block">
                    <div class="change-img">
                        <div class="front-side-img"><img src="images/123.jpg" alt=""></div>
                        <div class="back-side-img">
                            <div class="back-side__info">
                                <h3 class="back-side__title">
                                    Этот текст хочу отобразить в письме
                                </h3>
                                <span class="back-side__aderss">
                                    Этот текст хочу отобразить в письме
                                </span>

                                <span class="back-side__data">
                                    Этот текст хочу отобразить в письме
                                </span>
                                <span class="back-side__prise">
                                    Этот текст хочу отобразить в письме
                                </span>
                                <p><a href="#callback" class="btn btn-primary btn-outline btn-merop">Заявка на
                                        участие</a>
                                </p>
                            </div>
                    </div>
          </div>
 </div>

Вопрос: Возможно ли реализовать задумку, и если да то буду признателен за ваши советы.
Ну и на последок, стоит ли на сегодняшний день использовать именно такой mail.php?
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Rst0
@Rst0
magnificPopup поднимает окно с формой, в которой
нужно добавить скрытые поля в зависимости от страницы
в PHP
<input type="hidden" name="back-side__input" id="back-side__input"  value="<?php echo 'Этот текст хочу отобразить в письме'; ?>">


или в JS копировать в value скрытых полей, то что хотите передать в $_POST
document.querySelector('#back-side__input').value 
= document.querySelector('#back-side__title').innerText.trim();

тогда
$some_text = trim($_POST["back-side__input"]); // Этот текст хочу отобразить в письме

$message = "
Название блока формы: $calendar <br>
Форма: $formname <br> 
Имя: $name <br>
Телефон: $phone<br>
E-mail: $mail
Текст: " . $some_text;

Использование скрытого поля формы для передачи ...

насчет реализации - trim($_POST["~"]) мало для обработки полей, нужна валидация, того, что приходит желательно на клиенте и на сервере
Валидация форм на стороне клиента

валидация форм на стороне сервера php
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽