簡體   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