[英]Unable send email with ajax php jquery
我嘗試了很多次,並訪問了許多論壇,但找不到答案。 請不要像其他帖子一樣發帖。 請嘗試幫助我解決此問題。
HTML表單:
<form action="" method="post" id="bookingForm">
<div id="radiobutton">
<input type="radio" name="trip" id="oneway" value="oneway" checked/> Oneway
<input type="radio" name="trip" id="return" value="return"/> Return
</div>
<br/>
From:<input id="boarding" type="text" maxlength="40" class="user_input" size="18" name="boarding" value="Hyderabad"/>
To:<input id="landing" type="text" maxlength="40" class="user_input" size="18" name="landing"/>
<br/><br/><br/>
Onward:<input id="datepick" name="onward" class="user_input" size="15" />
Return: <input id="datepick2" name="return" class="user_input" size="15" />
<br/><br/><br/>
Your Name:<input id="pax_name" type="text" name="pax_name" class="user_input" size="25" maxlength="50"/>
<br/><br/>
Contact number:<input id="pax_contact" type="text" maxlength="14" name="pax_contact" class="user_input" size="25"/>
<br/><br/>
Email:<input id="pax_email" name="pax_email" class="user_input" size="25"/>
<br/><br/>
<center>
<input id="submit" type="button" value="Request" />
用於發送電子郵件的process.php:
<?php
$trip=$_POST['trip'];
$boarding=$_POST['boarding'];
$landing=$_POST['landing'];
$onward=$_POST['onward'];
$return=$_POST['return'];
$pax_name=$_POST['pax_name'];
$pax_contact=$_POST['pax_contact'];
$pax_email=$_POST['pax_email'];
$to='anvesh@bsbtravels.com,anvifriend@gmail.com';
$subject='Booking Form Query';
$body=
'Name: '.$pax_name."\n".
'Contact Number: '.$pax_contact."\n".
'Trip: '.$trip."\n".
'From: '.$boarding."\n".
'To: '.$landing."\n".
'Onward Date: '.$onward."\n".
'Return Date: '.$return."\n";
$headers='From: '.$pax_name.'<'.$pax_email.'>';
mail($to,$subject, $body, $headers)
?>
jQuery代碼:
$(document).ready(function(){
$('#submit').click(function(){
var boarding=$('#boarding').val();
var landing=$('#landing').val();
var datepick=$('#datepick').val();
var datepick2=$('#datepick2').val();
var pax_name=$('#pax_name').val();
var pax_contact=$('#pax_contact').val();
var pax_email=$('#pax_email').val();
if($('#landing').val().length<3 || $('#boarding').val().length<3 || $('#datepick').val().length<3 || $('#pax_name').val().length<3 || $('#pax_contact').val().length<8 || $('#pax_email').val().length<3){
$('#bookfail').attr('title','Sending Failed!').text('Please Enter valid information. All fields are required').dialog({buttons:{'Ok':function(){
$(this).dialog('close');
}},closeOnEscape:true,draggable:false,resizable:false,modal:true});
}else{
var VarData='boarding='+boarding+'&landing='+landing+'&datepick='+datepick+'&datepick2='+datepick2+'&pax_name='+pax_name+'&pax_contact='+pax_contact+'&pax_email='+pax_email;
$.ajax({
type:'POST',
url:'process.php',
data:VarData,
success:function(){
$('#booksuccess').attr('title','Request sent successfully').text('Your request has been sent. We will be in touch soon').dialog({buttons:{'Ok':function(){ $(this).dialog('close');
}},closeOnEscape:true,draggable:false,resizable:false,modal:true});
}
error:function(){
alert('Oops request sending failed. Please try again');
}
});
}
});
});
success
回調后,您缺少逗號:
success:function(){
...
}
error:function(){
...
}
必須
success:function(){
...
},// <--
error:function(){
...
}
您正在以傳統的查詢字符串格式發布您的值...將您的值放在javascript對象中,並通過將其stringify
將該對象發送到服務器...
有兩種方法可以做到這一點
1]修改您的javascript文件,如下所示
將所有值放在javascript
對象中...像這樣
var VarData= {
"boarding" : boarding,
"landing" : landing,
"datepick": datepick,
"datepick2": datepick2,
"pax_name": pax_name,
"pax_contact": pax_contact,
"pax_email": pax_email
}
並在$.ajax()
調用中將data:varData
行更改為
data: JSON.stringify(varData)
完成此操作后,您的PHP
代碼將能夠捕獲$_POST
數組中的值...
現在,您正在構建查詢字符串,並且$_POST
數組中沒有索引(例如boarding
和其他)。
第二種方式...保持Javascript
原樣,然后修改PHP
代碼。 像下面
捕獲從javascript代碼發送的數據。 並使用explode
函數通過&
中斷字符串
$temp = explode("&",$_POST['data']);
$temp
將是一個數組,因此您需要使用循環遍歷它。 然后將$temp
每個元素都打斷=
符號
喜歡
$t=explode("=",$temp[$i]);
$t
將具有您要查找的值,您可以使用它發送郵件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.