【发布时间】:2013-09-20 23:51:02
【问题描述】:
我有一个简单的“联系我”表格。 是用 html 制作的(当然),用 Javascript 进行验证,而不是使用 Ajax 请求并将其全部发送到一个 php 文件,在那里应该再次验证表单并发送它。 (我只知道一点 php,所以我希望是这样的!)
“成功”或“未提交”消息在 html 中,由 ajax/js 显示。 所以我的问题很简单:如何将正文发送到我的个人电子邮件,包括 php 验证? 我给你看我的代码:
js/ajax:
myForm.submitForm = function(){
var formData = {
name: myForm.name.val(),
email: myForm.email.val(),
text: myForm.text.val(),
};
$.ajax({
url: 'contact.php',
method: 'post',
//dataType: 'json';
success: myForm.submitSuccess,
error: myForm.submitError
})
};
myForm.submitSuccess = function(data, textStatus, jqXHR){
console.log(data, textStatus, jqXHR);
myForm.succMess.html(data.message);
myForm.succMess.show();
};
myForm.errorSuccess = function(jqXHR, textStatus, errorThrown){
console.log(jqXHR, textStatus, errorThrown);
myForm.errorMess.html(textStatus);
myForm.errorMess.show();
};
PHP:
<?php
$nome = $_POST['name'];
$email = $_POST['email'];
$text = nl2br($_POST['text']);
//mail() I guess i should use this one but how?!
//check if inputs are empty
if(!empty($nome) and !empty($email) and !empty($text)){
$mail_to = "myemail@gmail.com";
$mail_from = $email;
$mail_subject = "Email sent by $nome";
$mail_body = "$nome: $email. $text";
?>
非常感谢任何帮助:)
【问题讨论】:
-
您可以在 PHP.net 网站 php.net/manual/en/function.mail.php 的
mail()函数上找到大部分或全部答案。如果你想发送$mail_body,只需使用mail($mail_to, $mail_subject, $mail_body, $headers); -
加上你的
mail();会在$mail_body = "$nome: $email. $text";下而不是$text = nl2br($_POST['text']);下 -
感谢您的回答。是的,我已经看过官方文档,但我不明白。所以你的意思是我只需要在
$mail_body之后写mail($mail_to, $mail_subject, $mail_body, $headers);就可以了? -
不客气。是的,有影响。不过我建议你使用
&&而不是and -
另外,我确实尝试了您的代码,但里面有些东西没有发送邮件。你是从哪里弄来的?我使用我自己版本的 Ajax 处理程序来处理邮件,效果很好。