成功返回空ajax

时间:2014-09-25 10:53:38

标签: php jquery ajax

我遇到了问题,成功后发回的数据为空。 这里有一些代码,

我已经检查了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; // вырубаем стандартную отправку формы
});

3 个答案:

答案 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;])并且一切正常