[英]Sending data to php then emailing
我在尝试获取联系表单以向我发送所有输入的表单值时遇到问题。 目前,我收到的电子邮件仅显示“消息”值,而不显示名称,电话或电子邮件。 我看过一些教程,但是我需要一些不会重新加载页面的东西,所以我给了ajax一个机会。 我根本不擅长使用php或javascript,因此我可能缺少一些显而易见的东西。
脚本中注释掉的警报确实起作用。
这是我的脚本:
$('#myform').on('valid.fndtn.abide', function() {
var Name = $("input#Name").val();
var Email = $("input#Email").val();
var Phone = $("input#Phone").val();
var Message = $("textarea#Message").val();
var dataString = 'name='+ Name + '&email=' + Email + '&phone=' + Phone + '&Message=' + Message;
//alert (dataString);return false;
$.ajax({
type: "POST",
url: "contactengine.php",
data: dataString,
success: function() {
$('#contact_form').html("<div id='success-message'></div>");
$('#success-message').html("<h2>Message sent!</h2>")
.append("<p>We will be in touch soon. If you haven't had a reply within 2 working days please check your junk folder and mark us as safe.</p>")
.hide()
.fadeIn(1500, function() {
$('#success-message');
});
}
});
return false;
});
和我的PHP:
<?php
$EmailFrom = "me@myemail.co.nz";
$EmailTo = "me@myemail.co.nz";
$Subject = "New message from website contact form";
$Name = Trim(stripslashes($_POST['Name']));
$Phone = Trim(stripslashes($_POST['Phone']));
$Email = Trim(stripslashes($_POST['Email']));
$Message = Trim(stripslashes($_POST['Message']));
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Phone: ";
$Body .= $Phone;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= "\n";
$Body .= $Message;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.