下面的脚本有助于处理请求数字和名称值的表单,然后将其发送到process.php并显示确认并隐藏将模式触发到表单的按钮,以便用户无法重试填写形式。
处理传递数据的脚本到process.php
$(document).ready(function () {
function successHandler(){
console.log('Success');
$("#thanks").html(msg);
$('#form-content').modal('hide');
}
function errorHandler(){
console.log('Error');
alert("Error");
}
var nameval = $('#name').val();
var numberval = $('#number').val();
$("form#contact").submit(function(){
$.ajax({
type: "POST",
url: "process.php",
data: {
name: nameval,
number: numberval,
submit: true
},
success: function(msg){
$("#thanks").html(msg);
$('#form-content').modal('hide');
return false;
},
error: function(){
alert("Error");
return false;
}
});
return false;
});
});
整个操作确实会生成一封包含来自process.php脚本的HTML的电子邮件,但不包含从表单中捕获的数据,我相信此脚本中存在错误,因为我在表单或进程中找不到任何内容.php正在使用PHPMail()做错了什么。
你可以帮忙吗?更新
<?php
if (isset($_POST['submit'])) {
$name = ($_POST['name']);
$number = ($_POST['number']);
echo "<span class=\"alert alert-success\">THANKS! SUBMITTED</span>";
$to = "EMAIL BLANKED";
$subject = "Alert!";
$message = "name: $name number: $number";
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// More headers
$headers .= 'From: <email blank>' . "\r\n";
mail($to,$subject,$message,$headers);
}
else { echo '<div class="alert alert-error">Error</div>' ; }
?>
答案 0 :(得分:2)
你应该把这两行:
var nameval = $('#name').val();
var numberval = $('#number').val();
提交函数内的就像这样
$("form#contact").submit(function(){
var nameval = $('#name').val();
var numberval = $('#number').val();
因为如果在提交表单之前设置变量的值,输入很可能是空的。