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