我希望使用jquery / php为跟踪号提交单个表单输入,以便页面不会刷新。我能够提交表单并将电子邮件发送给我,但无法弄清楚要放在$ email_body中的内容,所以它实际上会通过电子邮件向我发送表单信息。电子邮件将发送空白(因此我假设电子邮件在PHP代码中)。请参阅下面的HTML / JS / PHP:
HTML:
<form id="track-form" accept-charset="UTF-8" action="" size="30" class="form-inline" method="POST">
<input class="focus" name="tracking" id="tracking" placeholder="tracking code" value="" type="text"/>
<input class="btn btn-default btn-track" name="submit" type="submit" value="Send" />
<img id="success" style="display:none" src="img/check.png" />
<br>
<label class="error" for="tracking" id="track-error">You must enter your tracking code!</label>
</form>
JS:
$(document).ready(function() {
$('.error').hide();
$("#track-form").on('submit', function(e) {
$('.error').hide();
var track = $("input#tracking").val();
if (track == "") {
$("label#track-error").show();
$("input#tracking").focus();
return false;
};
$.ajax({
url:'sendtrack.php',
data:$(this).serialize(),
type:'POST',
success:function(data){
console.log(data);
$("#success").fadeIn(300); //=== Show Success Message==
},
});
e.preventDefault();
});
});
PHP(问题出在哪里):
<?php
$track = $_POST['tracking'];
$email_from = 'info@website.com';
$email_subject = "New Tracking Info";
$email_body = "Tracking Number: $track".
$to = "email@gmail.com";
$headers = "From: $email_from \r\n";
//Send the email!
mail($to,$email_subject,$email_body,$headers);
?>
如果我保留$ email_body,我会收到“500 Server Error”。如果我把它留空,我会收到一封电子邮件,里面只有“email@gmail.com”,没有追踪号码。
提前感谢您的帮助!
答案 0 :(得分:2)
更改此行:
$email_body = "Tracking Number: $track".
为:
$email_body = "Tracking Number: $track";
结束的分号丢失了。你的位置有一个点。
您也可以尝试:
$email_body = "Tracking Number: " . $track . "\r\n";
注意强>: 使用/添加标题如下所示,将减少被误认为垃圾邮件的可能性。
例如:
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
因此,您的新标题会显示为:
$headers = 'From: $email_from' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
根据PHP.net上的mail()
函数 http://php.net/manual/en/function.mail.php
答案 1 :(得分:0)
你最后没有分号
$email_body = "Tracking Number: $track".