[英]Ajax: form data not passing on to e-mail
这是我的表格:
<form id='forma' action="index1.php" method="post">
<input name="name1" type="text">
<input class="s_submit" value="ЗАКАЗАТЬ" type="button" onclick="send1()">
</form>
这是我的javascript:
function send1(){
$('#forma').submit(function(event){
var formData = {
'fio' : $('input[name=name1]').val(),
};
$.ajax({
type : 'post',
url : 'index1.php',
data : formData,
dataType : 'json',
encode : true
})
.done(function(data) {
console.log(data);
});
event.preventDefault();
});
}
这是我的index1.php:
$fio=$_POST['name1'];
$mail_to="_______my_email_________";
$msg="Your name is: $fio
mail($mail_to, $thm, $msg, $headers);
在我的电子邮件中,仅发送“您的名字是:”消息,而没有人提交的名字。 当我将输入类型设置为提交并完全摆脱send1()函数时,代码将按预期工作。 但是输入必须是按钮类型,并且切勿在按下时转到另一页。 我想我应该摆脱一些变量分配,但是哪个?
POST数据中的变量是在formData
对象中使用fio
键定义的。 因此,要检索它的PHP应该是:
$fio = $_POST['fio'];
在提交表单时,您将覆盖提交的实际表单(包含您的文本字段),并提交自己的formData对象。
您可以使用以下方法很容易地从HTML表单中获取数据
$("#forma").serializeArray()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.