Ребята привет! При отправки заявки, браузер переходит на пустой php файл где содержится скрипт отправки формы, при это форма рабочая но хотелось бы что бы всплывало окно о успешной отправке или хотя бы просто обновлялась страничка. Заранее огромное спасибо!
<div class="popup reg_form">
<a class="close" href="#">×</a>
<h2>ОТПРАВИТЬ ЗАЯВКУ</h2>
<form id="contactForm" class="contact-form" method="post" action="contact_mailer.php">
<div class="form-group form-icon-group">
<input class="form-control" name="name" id="name" placeholder="Ваше Имя*" type="text" required>
<i class="fa fa-user"></i>
</div>
<div class="form-group form-icon-group">
<input class="form-control" name="email" placeholder="Ваш e-mail*" type="email" required>
<i class="fa fa-envelope"></i>
</div>
<div class="form-group form-icon-group">
<input class="form-control" name="phone" placeholder="Контактный телефон*" type="text" required>
<i class="fa fa-phone"></i>
</div>
<div>
<input type="submit" value="Отправить заявку" class="btn btn-danger scroll-to-id ">
</div>
</form>
<?php
if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['email'])&&$_POST['email']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")){
$to = 'godofwar9325@gmail.com'; //Почта получателя, через запятую можно указать сколько угодно адресов
$subject = 'Обратный звонок'; //Загаловок сообщения
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p><b>Имя:</b> '.$_POST['name'].'</p>
<p><b>Телефон:</b> '.$_POST['phone'].'</p>
<p><b>Почта:</b> '.$_POST['email'].'</p>
</body>
</html>'; //Текст нащего сообщения можно использовать HTML теги
$headers = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
$headers .= "From: Отправитель <uber-key.ru>\r\n"; //Наименование и почта отправителя
mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
}?>
<?php
if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['email'])&&$_POST['email']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")){
$to = 'godofwar9325@gmail.com'; //Почта получателя, через запятую можно указать сколько угодно адресов
$subject = 'Обратный звонок'; //Загаловок сообщения
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p><b>Имя:</b> '.$_POST['name'].'</p>
<p><b>Телефон:</b> '.$_POST['phone'].'</p>
<p><b>Почта:</b> '.$_POST['email'].'</p>
</body>
</html>'; //Текст нащего сообщения можно использовать HTML теги
$headers = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
$headers .= "From: Отправитель <uber-key.ru>\r\n"; //Наименование и почта отправителя
mail($to, $subject, $message, $headers);
if(mail(@params)){ //та самая проверка ответа mail(); из коммента
header('Location: uber-key.ru/index.html');
}else{
header('Location: uber-key.ru/failed.html');
}
index.html
echo 'main send successfully';
failed.html
echo 'main didnt send becouse of ...';
}?>
После строки mail($to, $subject, $message,......
Добавить echo "<h2>Заявка отправлена</h2>";
В вашем случае есть несколько способов решения поставленной задачи.
Первый и самый очевидный (но не самый лучший) - перенаправление пользователя после отправки письма на страницу сообщения об удачной или неудачной отправке. Обычно это реализуют так:
if(mail(@params)){ //та самая проверка ответа mail(); из коммента
header('Location: http://yoursite.com/success.html');
}else{
header('Location: http://yoursite.com/failed.html');
}
success.html
echo 'main send successfully';
failed.html
echo 'main didn't send becouse of ...';
Можете так же возвращаться на исходную страницу (где заполняли форму) с get-маркером отправки письма:
if(mail(@params)){
header('Location: http://where_you_came_from.com?m=1');
}
Тогда в исходном файле будете проверять $_get:
if($_get && isset($_get['m'])){
echo ($_get['m']) ? 'блок с сообщением об отправке письма' : 'блок с сообщением об ошибке отправки'.
}
Таким методом можно перенаправить юзера на любую страницу, в зависимости от ваших нужд. А про вывод сообщений в файле-обработчике просто забудьте, по мере изучения языка и шаблонов программирования всё станет на свои места, пока просто запомните(имхо).
Второй способ обработки - ajax, это js. Очень рекомендую изучать.
Отдельно хочу обратить ваше внимание на обработку данных, приходящих из форм. В вашем примере вы без обработки отправляете данные в функцию. В случае с письмом это не так важно, но когда в дальнейшем вы начнёте работу с бд, такое будет непростительно.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости