使用Ajax和jQuery发送邮件(邮件到php Post方法) [英] send mail (mail to php Post method) using Ajax and jQuery
问题描述
我正在通过执行Php函数my index.html从我的html页面发送邮件:
i'm sending mail from my html page by executing a Php function, my index.html :
<form method="POST" action="sendmail.php" >
<input type="text" name="sender_name" placeholder="Name" required="">
<input type="text" name="sender_email" placeholder="Email" required="">
<input type="text" name="subject" placeholder="Subject" required="">
<textarea placeholder="Message" name="message" required=""></textarea>
<input type="submit" name="send" value="SEND">
</form>
我的sendmail.php:
my sendmail.php:
<?php
if($_POST['send'] == 'SEND'){
$to = 'queries@mydomain.com';
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = "From: ".$_POST['sender_name']." <".$_POST['sender_email'].">\r\n"; $headers = "Reply-To: ".$_POST['sender_email']."\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
?>
上面的方法工作正常,但也离开了当前页面,我想在当前页面上执行上述方法,并为此按照问题
the above is working fine but its also leaving current page i wanna execute the above method on current page and for that according to this question & this question
我必须使用 Ajax 和 jQuery 吗?到目前为止,我对它们一无所知:
i have to use Ajax and jQuery? and i know nothing about them so far i have this :
////in my index.html
<button type="button">send mail</button>
<p></p>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$.ajax({
type: 'POST',
url: 'sendmail.php',
success: function(data) {
alert(data)
$("l").text(data);
}
});
});
});
</script>
我知道上面的信息不正确&它不起作用(当前在弹出窗口中显示sendmail.php的文本)我如何使其起作用,以便我可以执行sendmail.php?
i know above is not correct & its not working (currently its showing sendmail.php's text in a popup) how can i make it work so that i can execute sendmail.php ???
更新:
index.html
<form method="POST" id="myForm" action="sendmail.php">
<input type="text" name="sender_name" placeholder="Name" required="">
<input type="text" name="sender_email" placeholder="Email" required="">
<input type="text" name="subject" placeholder="Subject" required="">
<textarea placeholder="Message" name="message" required=""></textarea>
<input type="submit" name="send" value="SEND">
</form>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#myForm").on('submit', function(){
var formData = $(this).serialize();
$.ajax({
type: 'POST',
url: 'sendmail.php',
data: formData,
success: function(response.success) {
alert(response.success)
$("l").text(response.success);
}
});
});
</script>
`
推荐答案
以下内容应使用.on('submit'
和.serialize()
HTML
<form method="POST" id="myForm" action="sendmail.php">
<input type="text" name="sender_name" placeholder="Name" required="">
<input type="text" name="sender_email" placeholder="Email" required="">
<input type="text" name="subject" placeholder="Subject" required="">
<textarea placeholder="Message" name="message" required=""></textarea>
<input type="submit" name="send" value="SEND">
</form>
JS
$(document).ready(function() {
$("#myForm").on('submit', function(event) {
event.preventDefault();
var formData = $(this).serialize();
$.ajax({
type: 'POST',
url: 'sendmail.php',
dataType: "json",
data: formData,
success: function(response) {
alert(response.success);
},
error: function(xhr, status, error){
console.log(xhr);
}
});
});
});
PHP
<?php
if(isset($_POST['message'])){
$to = 'queries@mydomain.com';
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = "From: ".$_POST['sender_name']." <".$_POST['sender_email'].">\r\n"; $headers = "Reply-To: ".$_POST['sender_email']."\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subject, $message, $headers)) echo json_encode(['success'=>true]);
else echo json_encode(['success'=>false]);
exit;
}
?>
这篇关于使用Ajax和jQuery发送邮件(邮件到php Post方法)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!