@Jacksnow

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

Здарова ребята! Подскажите пожалуйста, как переделать код обработчика отправки заявки на мыло:

1. Чтоб проверял заполненность всех полей кроме поля telephone, то есть поле телефон не обязателен. И если какое то из полей: name, mail, adres, dostavka, oplata не заполнено , то выводило бы сообщение, что заполнены не все данные, но не на новой странице, а в том же окне снизу.

2. И как сделать, чтоб при положительном результате отправки сообщение выводилось тоже на той же странице, что и в форме?

<?php

if(!empty($_POST['telephone'] ))
{
$to = "";
$from = 'почта@.ru';
$subject = "Новый заказ";
$message = 'Имя: '.$_POST['name'].'; Телефон: '.$_POST['telephone'].'; E-mail: '.$_POST['mail'].'; Адрес: '.$_POST['adres'].'; Способ доставки: '.$_POST['dostavka'].'; Способ оплаты: '.$_POST['oplata'].'; Коментарии: '.$_POST['coment'].'; ';
$headers = "Content-type: text/html; charset=UTF-8 \r\n";
$headers .= "From: <почта@.ru>\r\n";
$result = mail($to, $subject, $message, $headers);
    if ($result){ 
        echo "<p>Сообщение отправлено, в ближайшее время наш менеджер свяжется с вами.</p>";
   }
    else{
        echo "<p>Попробуйте еще раз</p>";
    }
}
else {
echo "<p>Обязательные поля не заполнены.</p>";
}
?>
  • Вопрос задан
  • 259 просмотров
Пригласить эксперта
Ответы на вопрос 3
Там где у вас HTML форма, к input добавьте required.

Пример:
<input id="name" type="text" required>
Ответ написан
kirill_782
@kirill_782
Днем я Маринетт
1) На сервере делаете проверку полей. Есть два варианта: с показом ошибки и без.
1,1) -
if (isset ($_POST["mail"] , $_POST["name"]...)) {
Все заполнено
} else {
не заполнено что-то
}

1.2 - проверка на наличие каждого поля. Пользователь будет знать что отсуствует.
if (isset ($_POST["mail"])) {
Нету мыла
} elseif ((isset ($_POST["name"])) {
нету именти.
}

Эти два кода на 2 с плюсом. Например наличие мыла надо проверять регуляркой.
2) Через ajax отсылаем запрос и результат выводми под кнопкой.
Альтернатива: не использовать ajax, а делать подобные проверки на клиентской части, и не забывать, что заппрос может на сервер прийти например через CURL и уже проверка клиентская тут не поможет.
Ответ написан
Комментировать
@Jacksnow Автор вопроса
Разобрался с проверкой обязательных полей, заменил if(!empty($_POST['telephone'] )) на if(!empty($_POST['mail'] )), для остальных я так понял нужно сделать if(!empty($_POST['telephone' "adres" "dostavka" "name" "oplata"] )) ? И как это все в том же окне снизу выводить?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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