PHP不回应Ajax请求

时间:2015-02-26 02:51:53

标签: php ajax

我尝试使用Ajax请求发送带有PHP的电子邮件,但我的回声"在PHP文件似乎不起作用,我不知道为什么。

认为我的PHP代码错了,我用一个" echo"替换了我的代码。如下所示,但它仍然无法正常工作。

我发布了我的HTML,JS,PHP以及萤火虫响应,我不太了解。

HTML

<form id="contactForm" class="contact-form">
    <div class="form-group form-icon-group">
         <input class="form-control" id="name" name="name" placeholder="Nome" type="text" required title="Por favor, preencha esse campo." x-moz-errormessage="Por favor, preencha esse campo."/>
         <i class="fa fa-user"></i>
    </div>
    <div class="form-group form-icon-group">
        <input class="form-control" id="email" name="email" placeholder="Email" type="email" required title="Por favor, preencha esse campo corretamente." x-moz-errormessage="Por favor, preencha esse campo corretamente.">
        <i class="fa fa-envelope"></i>
    </div>
    <div class="form-group form-icon-group">
        <textarea class="form-control" id="message" name="message" placeholder="Qual sua mensagem?" rows="10" required title="Por favor, preencha esse campo." x-moz-errormessage="Por favor, preencha esse campo.">  </textarea>
        <i class="fa fa-pencil"></i>
    </div>
    <div>
       <a id="btnEnviar" value="Enviar Email" class="btn btn-primary btn-lg">Enviar Email</a>
    </div>
    <div>
        <label id="labelResposta" style="font-size: 22px; margin-top: 20px; display: none;">Email enviado com sucesso!</label>
    </div>
    <div id="messages"></div>
</form>

JS

$('#btnEnviar').click(function() {

    $('#btnEnviar').html('Enviando...');
    $('#btnEnviar').attr('disabled', 'disabled');

    var formData = {
        nome: $('#name').val(),
        email: $('#email').val(),
        message: $('#message').val()
    };
    // console.log(formData);
    // console.log($("#contactForm").serialize());

    if(!formData.nome) {
        $('#btnEnviar').html('Enviar Email');
        $('#btnEnviar').removeAttr('disabled');
        $('#labelResposta').html('Por favor preencha seu nome.');
        $('#labelResposta').fadeIn();
        setTimeout(function() {
            $('#labelResposta').fadeOut();
        }, 3000);
    } else if(!formData.email) {
        $('#btnEnviar').html('Enviar Email');
        $('#btnEnviar').removeAttr('disabled');
        $('#labelResposta').html('Por favor preencha seu email.');
        $('#labelResposta').fadeIn();
        setTimeout(function() {
            $('#labelResposta').fadeOut();
        }, 3000);
    } else if(!formData.message) {
        $('#btnEnviar').html('Enviar Email');
        $('#btnEnviar').removeAttr('disabled');
        $('#labelResposta').html('Por favor preencha sua mensagem.');
        $('#labelResposta').fadeIn();
        setTimeout(function() {
            $('#labelResposta').fadeOut();
        }, 3000);
    } else {

        $.ajax({
            url: 'file:///home/phellipe/Desktop/projetos/phperin/email/email_processor.php',
            type: "POST",
            data: formData,
            success: function(data) {
                $('#btnEnviar').html('Enviar Email');
                $('#btnEnviar').removeAttr('disabled');
                $('#labelResposta').html('Email enviado com sucesso!');
                $('#labelResposta').fadeIn();
                setTimeout(function() {
                    $('#labelResposta').fadeOut();
                }, 3000);
            },
            error: function(x, e){
                console.log(x);
                console.log(e);
                if(x.status==0){
                    $('#labelResposta').html('Você não está online!\n Por favor, verifique sua conexão.');
                }else if(x.status==404){
                    $('#labelResposta').html('URL não encontrada.');
                }else if(x.status==500){
                    $('#labelResposta').html('Erro interno.');
                }else if(e=='parsererror'){
                    $('#labelResposta').html('Erro de parse.');
                }else if(e=='timeout'){
                    $('#labelResposta').html('Timeout.');
                }else {
                    $('#labelResposta').html('Erro desconhecido.\n'+x.responseText);
                }
                $('#btnEnviar').html('Enviar Email');
                $('#btnEnviar').removeAttr('disabled');
                $('#labelResposta').fadeIn();
                setTimeout(function() {
                    $('#labelResposta').fadeOut();
                }, 3000);
            }
        });

    }

    return false;
});

PHP(测试)

<?php echo "string"; ?>

PHP(真实)

<?php

$sender_name = trim(ucfirst($_REQUEST['nome']));
$sender_email = trim($_REQUEST['email']);
$sender_message = trim(ucfirst($_REQUEST['message']));

$html_email = '<!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>PhPerin</title>
    </head>
    <body>
          <p>Olá</p>
          <p>Notificamos que <em>' . $sender_name . '</em> entrou em contato</p>
          <p>Deixou a seguinte mensagem:</p>
          <p>' . $sender_message . '</p>
          <p>Você pode entrar em contato pelo seguinte email <a href="mailto:' . $sender_email . '" class="contact">' . $sender_email . '</a></p>

    </body>
    </html>';

require_once("send_email.php");

echo "string";
?>

Firebug响应

readyState  4
responseText    "<?php echo "string"; ?>"
status  200
statusText  "parsererror"

1 个答案:

答案 0 :(得分:-1)

我想知道你是否需要逃避这些双引号。在哪里说

<meta charset="UTF-8">

<meta charset=\"UTF-8\">