我尝试使用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"
答案 0 :(得分:-1)
我想知道你是否需要逃避这些双引号。在哪里说
<meta charset="UTF-8">
试
<meta charset=\"UTF-8\">