使用post让AJAX与PHP对话
我试图让我的Ajax代码在返回同一页面之前与我的PHP文件对话 我希望填写我的表单,一旦点击send,它就会与我的AJAX代码对话,因此在返回给最终用户一条成功或失败消息之前,AJAX代码会与PHP文件对话 Ajax代码是:使用post让AJAX与PHP对话,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,我试图让我的Ajax代码在返回同一页面之前与我的PHP文件对话 我希望填写我的表单,一旦点击send,它就会与我的AJAX代码对话,因此在返回给最终用户一条成功或失败消息之前,AJAX代码会与PHP文件对话 Ajax代码是: $(document).ready(function(){ $(function() { $(".submit").click(function() { // validate and process form her
$(document).ready(function(){
$(function() {
$(".submit").click(function() {
// validate and process form here
var fname = $("#fname").val() ;
var lname = $("#lname").val();
var aemail = $("#aemail").val() ;
var year = $("#year").val();
var club = $("#club").val() ;
var position = $("#position").val();
var dataString = 'name='+ name + '&fname=' + fname + '&lname=' + lname + '&aemail=' + aemail + '&year=' + year + '&club=' + club + '&position=' + position;
$.ajax({
type: "POST",
url: "acad_process.php",
data: dataString,
success: function(){
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Submitted!</h2>")
.append("<p>Thank you. We will be in touch soon.</p>")
};
return false;
error: function(){
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Failed!</h2>")
.append("<p>Sorry, your form returned an error! Please try again.</p>")
.hide()
.fadeIn(1500, function() {
});
};
return false;
});
});
});
});
</script>
$(文档).ready(函数(){
$(函数(){
$(“.submit”)。单击(函数(){
//在此验证并处理表单
var fname=$(“#fname”).val();
var lname=$(“#lname”).val();
var aemail=$(“#aemail”).val();
var year=$(“#year”).val();
var club=$(“#club”).val();
变量位置=$(“#位置”).val();
var dataString='name='+name+'&fname='+fname+'&lname='+lname+'&aemail='+aemail+'&year='+year+'&club='+club+'&position='+position;
$.ajax({
类型:“POST”,
url:“acad_process.php”,
数据:dataString,
成功:函数(){
$(“#联系方式”).html(“”);
$('#message').html(“已提交联系人表单!”)
.append(“谢谢。我们很快就会联系的。”)
};
返回false;
错误:函数(){
$(“#联系方式”).html(“”);
$('#message').html(“联系人表单失败!”)
.append(“对不起,您的表单返回了一个错误!请重试。”)
.hide()
.fadeIn(1500,函数(){
});
};
返回false;
});
});
});
});
任何帮助都将不胜感激。因为我是AJAX新手。谢谢
问题似乎是PHP,因为在进一步的调查中,我在PHP页面上得到了一个错误,并且没有返回任何内容到我的页面。PHP代码是:
<?php
$email_to = "example@domain.co.uk";
if (!empty($_POST))
{
$fname = $_POST["fname"];
$lname = $_POST["lname"];
$email_from = $_POST["aemail"];
$year = $_POST ["year"];
$club = $_POST ["club"];
$position = $_POST ["position"];
$email_subject = "Enquiry";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = "From: $email_from . \n";
$headers = "Reply-To: $email_from . \n";
$message = "<p> You have received a message!</p>";
$message .= "<p><strong>First Name:</strong>" . $fname . "</p>";
$message .= "<p><strong>Surname:</strong>" . $lname . "</p>";
$message .= "<p><strong>School Year:</strong> " . $year . "</p>";
$message .= "<p><strong>E-Mail:</strong>" . $aemail ."</p>";
$message .= "<p><strong>Club:</strong> " . $club . "</p>";
$message .= "<p><strong>Position:</strong>" . $position . "</p>";
ini_set("sendmail_from",$email_from);
mail($email_to, $email_subject, $message, $headers, '-f'.$email_from);
}
?>
尝试将url:“acad_process.php”更改为url:“/acad_process.php”
还要确保acad_process.php中没有任何语法错误,因为您正在使用GET方法传递数据。下面是使用POST方法传递数据的示例
$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).success(function( msg ) {
alert( "Data Saved: " + msg );
});
试试这个:
$(document).ready(function(){
$(".submit").click(function() {
// validate and process form here
var fname = $("#fname").val() ;
var lname = $("#lname").val();
var aemail = $("#aemail").val() ;
var year = $("#year").val();
var club = $("#club").val() ;
var position = $("#position").val();
var dataString = 'name='+ name + '&fname=' + fname + '&lname=' + lname + '&aemail=' + aemail + '&year=' + year + '&club=' + club + '&position=' + position;
$.ajax({
type: "POST",
url: "acad_process.php",
data: dataString,
success: function(){
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Submitted!</h2>")
.append("<p>Thank you. We will be in touch soon.</p>")
},
error: function(){
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Failed!</h2>")
.append("<p>Sorry, your form returned an error! Please try again.</p>")
.hide()
.fadeIn(1500, function() { });
}
}); // end of ajax
}); // end of click listener
}); // end of doc ready
$(文档).ready(函数(){
$(“.submit”)。单击(函数(){
//在此验证并处理表单
var fname=$(“#fname”).val();
var lname=$(“#lname”).val();
var aemail=$(“#aemail”).val();
var year=$(“#year”).val();
var club=$(“#club”).val();
变量位置=$(“#位置”).val();
var dataString='name='+name+'&fname='+fname+'&lname='+lname+'&aemail='+aemail+'&year='+year+'&club='+club+'&position='+position;
$.ajax({
类型:“POST”,
url:“acad_process.php”,
数据:dataString,
成功:函数(){
$(“#联系方式”).html(“”);
$('#message').html(“已提交联系人表单!”)
.append(“谢谢。我们很快就会联系的。”)
},
错误:函数(){
$(“#联系方式”).html(“”);
$('#message').html(“联系人表单失败!”)
.append(“对不起,您的表单返回了一个错误!请重试。”)
.hide()
.fadeIn(1500,函数(){});
}
});//ajax的结束
});//单击结束侦听器
}); // 文件结束就绪
您是否在浏览器中检查php文件是否响应http代码200且可访问?问题是什么?你的问题是什么?data:'dataString',
需要是data:dataString,
我已经删除了'by dataString',这是我刚刚添加它们之前的情况,以查看它们是否有所不同。。PHP代码是可以访问的,只是似乎无法通过AJAX访问。如果我输入form action=“acad_process.php”,它会将表单发送到页面并发送电子邮件。notme:我的问题是AJAX代码有什么问题,它会停止将表单发送到php文件。抱歉,不清楚。我在键入后有“POST”,所以这不是使用POST方法而不是get方法获取数据吗?谢谢,我已经尝试过了,现在提交表单时,如果没有有效的电子邮件,它会拒绝表单并显示错误消息。然而,如果我提交一封有效的电子邮件,它似乎什么也不做,只是擦去了表格。谢谢你的html是什么样子的?