繁体   English   中英

Ajax:表单数据未传递到电子邮件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM