我遇到了问题,成功后发回的数据为空。 这里有一些代码,
我已经检查了php邮件功能并且它正常工作
$("input[type=submit]").click(function(){ // перехватываем все при событии отправки
var form = $('#form'); // запишем форму, чтобы потом не было проблем с this
if (!error) { // если ошибки нет
var data = form.serialize(); // подготавливаем данные
$.ajax({ // инициализируем ajax запрос
type: 'POST', // отправляем в POST формате, можно GET
url: 'mail.php', // путь до обработчика, у нас он лежит в той же папке
data: $("#form").serialize(), // данные для отправки
dataType: 'html',
beforeSend: function(data) { // событие до отправки
form.find('input[type="submit"]').attr('disabled', 'disabled'); // например, отключим кнопку, чтобы не жали по 100 раз
},
success: function(data){ // событие после удачного обращения к серверу и получения ответа
alert(data);
if (data['error']) { // если обработчик вернул ошибку
alert(data['error']); // покажем её текст
} else { // если все прошло ок
$('#thirdblock').addClass('block')
$('#secondblock .arrow2').addClass('block')
}
},
error: function (xhr, ajaxOptions, thrownError) { // в случае неудачного завершения запроса к серверу
alert(xhr.status); // покажем ответ сервера
alert(thrownError); // и текст ошибки
},
complete: function(data) { // событие после любого исхода
form.find('input[type="submit"]').prop('disabled', false); // в любом случае включим кнопку обратно
}
});
}
return false; // вырубаем стандартную отправку формы
});
答案 0 :(得分:0)
在你的PHP代码中,如果邮件发送成功,你就不输出任何东西,所以ajax succes(数据) - 数据将为空,如果成功则尝试回显并失败
答案 1 :(得分:0)
您需要更正您的PHP代码:
<?php
if($_POST['submit']) {
// $_POST['title']
$title = $_POST['name'];
$mess = 'Name: '.$_POST['name'].'<br> Phone: '.$_POST['phone'].'<br>Email:'.$_POST['email'].'<br>Where:'.$_POST['whenmap'].'<br>When:'.$_POST['dayst'].'<br>Textfield:'.$_POST['textfield'].'';
$to = $_POST['email'];
$to2 = 'steelbrod2007@yandex.ru';
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: test <test@example.com>\r\n";
if(mail($to, $title, $mess, $headers) && mail($to2, $title, $mess, $headers)){
echo "1";
}else{
echo "Error.";
}
}
?>
你的js代码是:
success: function(data){ // событие после удачного обращения к серверу и получения ответа
alert(data);
if (data != '1') { // если обработчик вернул ошибку
alert(data); // покажем её текст
} else { // если все прошло ок
$('#thirdblock').addClass('block')
$('#secondblock .arrow2').addClass('block')
}
},
我希望这会有所帮助。
答案 2 :(得分:-1)
这里是php代码
<?php
if($_POST['submit']) {
// $_POST['title']
$title = $_POST['name'];
$mess = 'Name: '.$_POST['name'].'<br> Phone: '.$_POST['phone'].'<br>Email:'.$_POST['email'].'<br>Where:'.$_POST['whenmap'].'<br>When:'.$_POST['dayst'].'<br>Textfield:'.$_POST['textfield'].'';
$to = $_POST['email'];
$to2 = 'steelbrod2007@yandex.ru';
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: test <test@example.com>\r\n";
mail($to, $title, $mess, $headers);
mail($to2, $title, $mess, $headers);
}
?>
我刚刚删除了if($ _ POST [&#39; submit&#39;])并且一切正常