Answer the question
In order to leave comments, you need to log in
What is wrong with php email send code?
Problem:
When you click on the submit button of the feedback form, the page is reloaded with the data displayed in the address bar and that's it.
And my own message doesn't come to the mail -_-
Here is the form code
<form id="form">
<input name="name" placeholder="Ф.И.О." class="textbox" required />
<input name="phone" placeholder="Телефон:" class="textbox" required />
<input name="email" placeholder="Email:" class="textbox" type="email" required />
<textarea name="messag" rows="4" cols="50" placeholder="Введите ваше сообщение и мы обязательно с вами свяжемся!" class="message" required></textarea>
<input class="button" type="submit" value="Отправить" />
</form>
<script type="text/javascript">
$(document).ready(function(){
$("#form").submit(function() { //устанавливаем событие отправки для формы с id=form
var form_data = $(this).serialize(); //собираем все данные из формы
$.ajax({
type: "POST", //Метод отправки
url: "send.php", //путь до php фаила отправителя
data: form_data,
success: function() {
//код в этом блоке выполняется при успешной отправке сообщения
alert("Ваше сообщение отправлено!");
});
});
});
</script>
<?
if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")&&(isset($_POST['email'])&&$_POST['email']!="")&&(isset($_POST['messag'])&&$_POST['messag']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они
$to = '[email protected]'; //Почта получателя, через запятую можно указать сколько угодно адресов
$subject = 'Обратный звонок'; //Заголовок сообщения
$date=date("d.m.y"); // число.месяц.год
$time=date("H:i"); // часы:минуты:секунды
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p>Сообщение: '.$_POST['messag'].'</p>
<p>Имя: '.$_POST['name'].'</p>
<p>Телефон: '.$_POST['phone'].'</p>
<p>Email: '.$_POST['email'].'</p>
</body>
</html>'; //Текст нашего сообщения можно использовать HTML теги
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
$headers .= "From: Отправитель <.$_POST['email'].>\r\n"; //Наименование и почта отправителя
$f = fopen("message.txt", "a+");
fwrite($f," \n $date $time Сообщение от $name");
fwrite($f,"\n $message ");
fwrite($f,"\n ---------------");
fclose($f);
mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
}
?>
<?
mail("[email protected]", "Шествие лемингов", "Тушканчики лемингуют!");
?>
Answer the question
In order to leave comments, you need to log in
$(document).ready(function(){
$("#form").submit(function() {
$.ajax({
type: "POST",
context: this,
url: "send.php",
data: $(this).serialize(),
error: function() {
alert("Ошибка!");
},
success: function() {
alert("Ваше сообщение отправлено!");
}
});
return false;
});
});
First you need to determine where the error is
. Without conditions, the php file, if you run it, will the message come?
Are there any errors about js in the console?
The form will reload to prevent:
$("#form").submit(function() { //устанавливаем событие отправки для формы с id=form
var form_data = $(this).serialize(); //собираем все данные из формы
$.ajax({
type: "POST", //Метод отправки
url: "send.php", //путь до php фаила отправителя
data: form_data,
success: function() {
//код в этом блоке выполняется при успешной отправке сообщения
alert("Ваше сообщение отправлено!");
});
return false; // ПРЕДОТВРАЩАЕМ ПЕРЕЗАГРУЗКУ
});
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question