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

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

Всем привет. Я новичок в плане создания сайтов. Делаю сайт без движка.
Есть почтовая форма. В плане заказать обратный звонок работает нормально.
Но не знаю как добавить в send.php дополнительные поля. Точнее когда я добавляю, перестает работать.
Поэтому прикрепил рабочий без изменений код.

Что не получается добавить:
1) Чтобы была ссылка странички с которой заполняют форму.
2) И были данные, которые они выбрали к примеру:
- прямая 2 метра.
или
- угловая (левая) 1 и 2 метра.

Скрин формы
5bdbf0765fef9629307536.png
Код формы
<div class="popup-blank" data-popup-id="price-calc">
      <form class="popup-blank__form form" action="/php/send.php" method="POST" data-ya_type="size">
        <input type="hidden" name="item_name" class="popup_item_name" value=""/>
        <input type="hidden" name="item_url" class="popup_item_url" value="kitchen/kukhnya-venetsiya.php"/>
              <div class="popup-blank__title">Расчет цены под свой размер</div>
        <div class="popup-blank__descr">Выберите планировку кухни и&nbsp;размер кухонного гарнитура. Наш специалист позвонит вам и&nbsp;назовет стоимость работ.</div>
              <div class="price-calc">
                <div class="price-calc__list-title">Планировка кухни</div>
                <div class="price-calc__list">
                  <div class="price-calc__list-item">
                    <label class="radio"><input type="radio" name="type" value="line" id="type-line" checked/><span></span></label>
                    <label class="price-calc__list-item-name" for="type-line">Прямая</label>
                  </div>
                  <div class="price-calc__list-item">
                    <label class="radio"><input type="radio" name="type" value="corner-left" id="type-corner-left"/><span></span></label>
                    <label class="price-calc__list-item-name" for="type-corner-left">Угловая (левая)</label>
                  </div>
                  <div class="price-calc__list-item">
                    <label class="radio"><input type="radio" name="type" value="corner-right" id="type-corner-right"/><span></span></label>
                    <label class="price-calc__list-item-name" for="type-corner-right">Угловая (правая)</label>
                  </div>
                  <div class="price-calc__list-item">
                    <label class="radio"><input type="radio" name="type" value="p-shaped" id="type-p-shaped"/><span></span></label>
                    <label class="price-calc__list-item-name" for="type-p-shaped">П-образная</label>
                  </div>
                </div>
                <div class="price-calc__sizes-title">Длины кухонного гарнитура по&nbsp;стенам</div>
                <div class="price-calc__sizes price-calc__sizes_line">
                  <div class="price-calc__size-item price-calc__size-item_top">
                    <input value="1" name="wall_top">
                  </div>
                  <div class="price-calc__size-item price-calc__size-item_left">
                    <input value="1" name="wall_left">
                  </div>
                  <div class="price-calc__size-item price-calc__size-item_right">
                    <input value="1" name="wall_right">
                  </div>
                </div>
              </div>
                <div class="form-item">
                  <label class="form-item__name" for="name">Имя</label>
                  <input class="form-item__field ym-record-keys" type="text" name="name" placeholder="Ваше имя" id="name" data-xp="required: true">
                </div>
                <div class="form-item">
                  <label class="form-item__name" for="tel">Телефон</label>
                  <input class="form-item__field ym-record-keys" type="tel" name="tel" placeholder="Ваш телефон" id="tel" autocomplete="new-password" data-xp="type: 'phone', required: true">
                </div>
        <div class="form-item">
                  <label class="form-item__name" for="email">E-mail</label>
                  <input class="form-item__field ym-record-keys" type="text" name="email" placeholder="E-mail" id="email" data-xp="">
                </div>
        <div class="popup-blank__submit">
          <div class="g-recaptcha" id="rct2"></div>
        </div>
                <div class="popup-blank__submit">
                  <input class="btn btn_sexy btn_size_large" value="Рассчитать стоимость" type="submit" data-xp="enabled_on_completed: true, type: 'submit'">
                  <div class="form_policy">Нажимая кнопку «Рассчитать стоимость», я соглашаюсь с условиями <a href="/policy.pdf" target="_blank" rel="nofollow">Политики&nbsp;конфиденциальности</a></div>
                </div>
              </form>
            </div>

Вот файл, который отправляет:
send.php
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];

$name = htmlspecialchars($name);
$email = htmlspecialchars($email);
$tel = htmlspecialchars($tel);

$name = urldecode($name);
$email = urldecode($email);
$tel = urldecode($tel);

$name = trim($name);
$email = trim($email);
$tel = trim($tel);

if (mail("почта@yandex.ru", "Расчет цены", "Имя:".$name.". почта:".$email.". Tel: ".$tel ,"From: почта@yandex.ru \r\n"))
 {     echo "сообщение успешно отправлено"; 
} else { 
    echo "при отправке сообщения возникли ошибки";
}?>
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
NooBiToo
@NooBiToo
input в html
<div class="form-item">
  <label class="form-item__name" for="new_input">Новое поле</label>
  <input class="form-item__field ym-record-keys" type="text" name="new_input" placeholder="Новое поле" id="new_input" required: true">
</div>


send.php
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$new = $_POST['new_input'];

$name = htmlspecialchars($name);
$email = htmlspecialchars($email);
$tel = htmlspecialchars($tel);
$new = htmlspecialchars($new);

$name = urldecode($name);
$email = urldecode($email);
$tel = urldecode($tel);

$name = trim($name);
$email = trim($email);
$tel = trim($tel);
$new = trim($new);

if (mail("почта@yandex.ru", "Расчет цены", "Новое поле:".$new."Имя:".$name.". почта:".$email.". Tel: ".$tel ,"From: почта@yandex.ru \r\n"))
 {     echo "сообщение успешно отправлено"; 
} else { 
    echo "при отправке сообщения возникли ошибки";
}?>
Ответ написан
@NataliaCh
Можно отправить форму аяксом, тогда все выбранное/вписанное пользователем останется нетронутым. Просто не будет перезагрузки страницы с формой.

Либо Вам нужно поместить ваш send.php (инклудить) в тот же файл, где и сама форма. На самом верху. Action у формы не прописывать.
А в поля формы вставлять значения из массива $_POST. Если есть $_POST['name'], то value=$_POST['name'], если нет, то пусто.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы