Ajax:表单数据不传递给电子邮件

时间:2014-08-13 13:37:31

标签: javascript php jquery ajax

这是我的表格:

  <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);

仅限我的电子邮件&#34;您的姓名是:&#34;邮件已发送,没有人提交的名称。当我将输入类型设置为提交并完全摆脱 send1()功能时,代码按预期工作。但输入必须是按钮类型,并且永远不会在按下时转到另一页。我想我应该摆脱一些变量赋值,但是哪些呢?

2 个答案:

答案 0 :(得分:4)

POST数据中的变量在formData对象中定义,密钥为fio。因此,要检索它的PHP应为:

$fio = $_POST['fio'];

答案 1 :(得分:0)

在表单提交中,您将覆盖提交的实际表单(包含您的文本字段),并提交您自己的formData对象。

您可以使用

轻松地从HTML表单中获取数据
    $("#forma").serializeArray()