[英]How to send E-mail to user using javascript
如您所見,我有一個荒謬的問題,我嘗試通過我的個人網頁建立基本聯系,但我無法克服我從互聯網上幾乎所有代碼中獲得的問題我花了很多時間在辦公桌上,后來這種情況變成了毫無意義的事情。
謝謝你幫助我
<!DOCTYPE html>
<head>
<link rel="stylesheet" href="info.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1,maximum-scale=1"
/>
<script>
$(document).ready(function () {
$("#btn").click(function () {
let message = {
name: $("input[name='name']").val(),
mail: $("input[name='mail']").val(),
subject: $("input[name='Subject']").val(),
msg: $("input[name='info']").val(),
};
$.ajax({
type: "POST",
url: "mail.php",
data: message,
success: function () {
$(".success").fadeIn(100);
},
});
});
//alert("message has been send by you");
});
</script>
<body>
<title>information</title>
<div class="Main-container">
<div class="container">
<h2><b>Contact Me</b></h2>
<div class="container-cover">
<form action="mail.php" method="POST">
<form class="contact-form">
<div class="inner-column-1">
<div class="form-container">
<b> <label for="Name">Name:</label> </b>
<input
type="text"
name="name"
class="inner-column-1"
placeholder="Enter Name "
/>
<b><label for="mail">Mail:</label></b>
<input
type="mail"
name="mail"
class="inner-column-1"
placeholder="Enter Email "
/>
</div>
</div>
<div class="inner-column-1">
<b><label for="subject">Subject:</label></b>
<input
type="subject"
name="Subject"
placeholder="Subject"
class="inner-column-1"
style="width: 370px"
/>
</div>
<div class="inner-column-1">
<div class="inner-column-1">
<textarea
name="info"
id=""
type="info"
cols="31"
rows="10"
placeholder="Enter Something Please..."
style="
border-radius: 6px;
font-size: 25px;
border: 2px ridge royalblue;
overflow: -moz-hidden-unscrollable;
resize: none;
"
></textarea>
</div>
</div>
<div class="inner-column-2">
<button id="btn">Send Me</button>
</div>
</form>
</form>
</div>
</div>
</div>
</body>
</head>
<?php
if ($_POST) {
$name = $_POST(['name']);
$mail = $_POST(['mail']);
$msg = $_POST(['msg']);
mail("blabla@gmail.com", 'This is an email from:', $msg, $mail);
}
?>
您有嵌套的表單標簽,這是一個壞主意 - 只需將其設為一個並將 class 移入其中即可。
<form action="mail.php" method="POST">
<form class="contact-form">
<!-- get rid of this inner form tag -->
Forms(默認)提交並加載(或重新加載)頁面。 您正在使用 ajax 因此您必須抑制這種自然行為。 最簡單的方法就是一個內聯事件——你可以去掉method
和action
,因為這里不需要它們:
<form onsubmit="return false;" class="contact-form">
我同意評論 - PHP 腳本作為一個單獨的文件會更有意義。 此外,您應該考慮輸出是否成功。
...
$done = mail("blabla@gmail.com", 'This is an email from:', $msg, $mail);
echo $done ? "success" : "fail" ;
這樣您的 ajax 可以得到響應並將其報告給用戶
///////////JQUERY//////////////
$(document).ready(function () {
var frm = $('#ss-form');
frm.validate();
$('#ss-submit').click(function (ev) {
frm.validate();
if ($('#ss-form').valid()) {
$.ajax({
type: "POST",
url: "mail.php",
data: frm.serialize(),
success: function () {
alert('Thank you for your submission');
},
beforeSend: function () {
$('body').addClass("ss-submit-progress");
$('.ss-submit-progress').css('cursor', 'progress');
},
complete: function () {
$('.ss-submit-progress').removeAttr('style');
$('body').removeClass("ss-submit-progress");
}
});
frm[0].reset();
} else {
alert("Incorrectly filled form");
$('#ss-form').valid();
}
ev.preventDefault();
return false;
});
$('input').on('change',function () {
if ($('#ss-form').valid()) {
$('#ss-submit').css('opacity','1');
}
});
$('textarea').on('change',function () {
if ($('#ss-form').valid()) {
$('#ss-submit').css('opacity','1');
}
});
});
////////////PHP///////////////
<?php
$method = $_SERVER['REQUEST_METHOD'];
$c = true;
if ( $method === 'POST' ) {
$project_name = trim($_POST["project_name"]);
$project_subject = trim($_POST["project_subject"]);
$admin_email = trim($_POST["admin_email"]);
$form_subject = trim($_POST["form_subject"]);
foreach ( $_POST as $key => $value ) {
if ( $value != "" && $key != "project_name" && $key != "project_subject" && $key != "admin_email" && $key != "form_subject" ) {
$message .= "
" . ( ($c = !$c) ? ' ':' ' ) . "
$key
$value
";
}
}
} else if ( $method === 'GET' ) {
$project_name = trim($_GET["project_name"]);
$project_subject = trim($_GET["project_subject"]);
$admin_email = trim($_GET["admin_email"]);
$form_subject = trim($_GET["form_subject"]);
foreach ( $_GET as $key => $value ) {
if ( $value != "" && $key != "project_name" && $key != "project_subject" && $key != "admin_email" && $key != "form_subject" ) {
$message .= "
" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
$key
$value
</tr>
";
}
}
}
function adopt($text) {
return '=?UTF-8?B?'.Base64_encode($text).'?=';
}
$headers = "MIME-Version: 1.0" . PHP_EOL .
"Content-Type: text/plain; charset=utf-8" . PHP_EOL .
'Reply-To: '.$admin_email.'' . PHP_EOL;
mail($admin_email, adopt($form_subject), $message, $headers );
//////////HTML////////////
<form id="ss-form">
<input type="hidden" name="project_name" value="Site Name">
<input type="hidden" name="project_subject" value="Subject Name">
<input type="hidden" name="admin_email" value="rbalik341@gmail.com">
<input type="hidden" name="form_subject" value="Form Subject">
<div class="row">
<div class="col-md-5">
<div class="form-group">
<label class="control-label" for="field-type-name">Name</label>
<input class="form-control" name="Name" type="text" id="field-type-name" required>
</div>
<div class="form-group">
<label class="control-label" for="field-type-subject">Subject</label>
<input class="form-control" name="Subject" type="text" id="field-type-subject" required>
</div>
<div class="form-group">
<label class="control-label" for="field-type-email">Email</label>
<input type="email" class="form-control" name="E-mail" id="field-type-email" required>
</div>
</div>
<div class="col-md-7">
<div class="form-group field-textarea">
<label class="control-label" for="field-type-textarea">Message</label>
<textarea class="form-control" name="Message" id="field-type-textarea" required></textarea>
</div>
</div>
</div>
</form>
它必須工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.