我正在寻找使用 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 服务器错误”。如果我将其留空,我会收到一封电子邮件,其中只有“email@gmail.com”,没有跟踪号码。
在此先感谢您的帮助!