Javascript 发送电子邮件前需要预览页面
我的电子邮件发送脚本在提交表单后发送电子邮件。单击“提交”按钮后,表单数据将直接发送到收件人电子邮件地址,但我需要预览页面,该页面将在发送电子邮件之前显示表单数据的预览。这里,表单操作由javascript文件workMail.js控制,操作页面为sendMail.php 谢谢你的帮助 这是我的密码 index.phpJavascript 发送电子邮件前需要预览页面,javascript,php,sendmail,preview,Javascript,Php,Sendmail,Preview,我的电子邮件发送脚本在提交表单后发送电子邮件。单击“提交”按钮后,表单数据将直接发送到收件人电子邮件地址,但我需要预览页面,该页面将在发送电子邮件之前显示表单数据的预览。这里,表单操作由javascript文件workMail.js控制,操作页面为sendMail.php 谢谢你的帮助 这是我的密码 index.php <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" conten
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
<script src="http://unnayannews.com/testjs/jquery_003.js"></script>
<script src="js/workMail.js"></script>
<link rel="stylesheet" type="text/css" href="css/mailAlert.css">
</head>
<body style="margin: 0px;">
<div class="onedari_form_wrapper info_form_wrapper ajast_onedari_form mgt0">
<form id="contactForm">
<div class="form_field">
<label id="name">■Name<span class="red">*</span></label>
<input kl_virtual_keyboard_secure_input="on" placeholder="Name" class="custom_input" name="name" type="text" required>
</div>
<div class="form_field">
<label id="mail">■Email<span class="red">*</span></label>
<input kl_virtual_keyboard_secure_input="on" class="custom_input" name="mail" type="text" required>
</div>
<div class="form_field">
<label id="age">■Age<span class="red">*</span></label><br>
<input kl_virtual_keyboard_secure_input="on" style="width: 30%" placeholder="" class="custom_input" name="age" type="text" required>
</div>
<p style="margin: 0px 0px 8px;"><label id="work">■Work<span class="red">*</span></label></p>
<div class="category-wrapper">
<input id="CategoryCategory10" class="checkbox" value="10" name="data[]" type="checkbox" >
<label for="CategoryCategory10">App development</label>
<br> <input id="CategoryCategory209" class="checkbox" value="209" name="data[]" type="checkbox"> <label for="CategoryCategory209">System management</label>
<br>
<input id="CategoryCategory213" class="checkbox" value="213" name="data[]" type="checkbox"> <label for="CategoryCategory213">Web</label><br>
<input id="CategoryCategory19" class="checkbox" value="19" name="data[]" type="checkbox"> <label for="CategoryCategory19">Graphics</label><br>
<br>
<button id="send" class="submit bg_red" type="button" name="send">Submit</button>
</form>
</div>
</body>
</html>
<?php
if( isset($_POST['data']) && is_array($_POST['data']) ) {
foreach($_POST['data'] as $data) { }
$datatList = implode(', ', $_POST['data']);
}
$send_for_address = "test@email.com";
$header = "From: test@email.com";
$messages = "Name: $_POST[name]\n";
$messages .= "Email: $_POST[mail]\n";
$messages .= "Age : $_POST[age]\n";
$messages .= "Work $datatList\n";
mail($send_for_address, $messages,$header);
mb_internal_encoding("UTF-8");
if (mail($send_for_address, $messages,$header)) {
$response = <<<HTML
<div class='alert'>
<div class='alert-header'><div class="alert-remove layerOff">×</div></div>
<div class="alert-body fs0_7">
Thank you for your applicaion!
</div>
<div class="alert-footer">
<input type="button" value="OK" class="layerOff">
</div>
</div>
HTML;
echo json_encode(array("success"=>true, "message"=> $response));
}else{}
?>
■名字*
■电子邮件*
■年龄*
■工作*
应用程序开发
系统管理
网络
图形
提交
sendMail.php
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
<script src="http://unnayannews.com/testjs/jquery_003.js"></script>
<script src="js/workMail.js"></script>
<link rel="stylesheet" type="text/css" href="css/mailAlert.css">
</head>
<body style="margin: 0px;">
<div class="onedari_form_wrapper info_form_wrapper ajast_onedari_form mgt0">
<form id="contactForm">
<div class="form_field">
<label id="name">■Name<span class="red">*</span></label>
<input kl_virtual_keyboard_secure_input="on" placeholder="Name" class="custom_input" name="name" type="text" required>
</div>
<div class="form_field">
<label id="mail">■Email<span class="red">*</span></label>
<input kl_virtual_keyboard_secure_input="on" class="custom_input" name="mail" type="text" required>
</div>
<div class="form_field">
<label id="age">■Age<span class="red">*</span></label><br>
<input kl_virtual_keyboard_secure_input="on" style="width: 30%" placeholder="" class="custom_input" name="age" type="text" required>
</div>
<p style="margin: 0px 0px 8px;"><label id="work">■Work<span class="red">*</span></label></p>
<div class="category-wrapper">
<input id="CategoryCategory10" class="checkbox" value="10" name="data[]" type="checkbox" >
<label for="CategoryCategory10">App development</label>
<br> <input id="CategoryCategory209" class="checkbox" value="209" name="data[]" type="checkbox"> <label for="CategoryCategory209">System management</label>
<br>
<input id="CategoryCategory213" class="checkbox" value="213" name="data[]" type="checkbox"> <label for="CategoryCategory213">Web</label><br>
<input id="CategoryCategory19" class="checkbox" value="19" name="data[]" type="checkbox"> <label for="CategoryCategory19">Graphics</label><br>
<br>
<button id="send" class="submit bg_red" type="button" name="send">Submit</button>
</form>
</div>
</body>
</html>
<?php
if( isset($_POST['data']) && is_array($_POST['data']) ) {
foreach($_POST['data'] as $data) { }
$datatList = implode(', ', $_POST['data']);
}
$send_for_address = "test@email.com";
$header = "From: test@email.com";
$messages = "Name: $_POST[name]\n";
$messages .= "Email: $_POST[mail]\n";
$messages .= "Age : $_POST[age]\n";
$messages .= "Work $datatList\n";
mail($send_for_address, $messages,$header);
mb_internal_encoding("UTF-8");
if (mail($send_for_address, $messages,$header)) {
$response = <<<HTML
<div class='alert'>
<div class='alert-header'><div class="alert-remove layerOff">×</div></div>
<div class="alert-body fs0_7">
Thank you for your applicaion!
</div>
<div class="alert-footer">
<input type="button" value="OK" class="layerOff">
</div>
</div>
HTML;
echo json_encode(array("success"=>true, "message"=> $response));
}else{}
?>
workMail.js
$(function(){
// sendForm
$("#send").on("click", function(e){
e.preventDefault();
chackError("#contactForm");
});
$(document).on("click", ".layerOff", function(){
$(".overlay").remove();
});
});
function chackError(selector){
var $form = $(selector);
var name = $form.find("input[name='name']").val();
var mail = $form.find("input[name='mail']").val();
var age = $form.find("input[name='age']").val();
/*var work = $form.find("textarea[name='work']").val();*/
var dataval = document.getElementsByName("data[]");
// or document.querySelectorAll('[name="summer[]"]');
var checked = [].filter.call( dataval , function( v ){
return v.checked;
});
$form.find(".coution").remove();
var error_frag = false;
if ( checked.length < 1 ) {
$("#work").append("<span class='coution'><br>Work field reqire</span>");
error_frag = true;
error_kind = "#work";
}
if(age == ""){
$("#age").append("<span class='coution'><br>Age field reqire</span>");
error_frag = true;
error_kind = "#age";
}
if(mail == ""){
$("#mail").append("<span class='coution'><br>email field reqire</span>");
error_frag = true;
error_kind = "#mail";
}
if(name == ""){
$("#name").append("<span class='coution'><br>Name field reqire</span>");
error_frag = true;
error_kind = "#name";
}
if(error_frag === false){
sendForm();
}else{
var targetY = $(error_kind).offset().top;
var headerH = $("#header").height();
var ajast = ($(window).width() >= 761)? 80 : 20;
$("html, body").animate({ scrollTop: targetY - headerH - ajast}, 'fast');
}
}
function sendForm(){
var post_data = $("#contactForm").serialize();
$("#contactForm").find("input, checkbox, textarea").val("").end().find(":checked").prop("checked", false);
$.post("sendMail.php",
post_data,
function(data){
if(data.success === false){
alert("error");
$(".overlay").remove();
}else{
$("body").append("<div class='overlay'></div>");
$(".overlay").html(data.message);
$("html, body").animate({ scrollTop: 0}, 'fast');
}
},
"json"
);
return false;
}
$(函数(){
//sendForm
$(“#发送”)。在(“单击”上,函数(e){
e、 预防默认值();
查克勒(“联系方式”);
});
$(文档)。在(“单击”、“.layerOff”上,函数(){
$(“.overlay”).remove();
});
});
功能更改错误(选择器){
变量$form=$(选择器);
var name=$form.find(“输入[name='name']”).val();
var mail=$form.find(“输入[name='mail']”).val();
var age=$form.find(“输入[name='age']”).val();
/*var work=$form.find(“textarea[name='work']”)val()*/
var dataval=document.getElementsByName(“数据[]”);
//或document.querySelectorAll('[name=“summer[]”]);
选中的var=[].filter.call(dataval,函数(v){
返回v.checked;
});
$form.find(“.coution”).remove();
var错误\u frag=错误;
如果(选中。长度<1){
$(“#工作”)。追加(
工作区需求);
错误_frag=true;
错误_kind=“#工作”;
}
如果(年龄=“”){
$(“#年龄”)。追加(“
年龄字段请求”);
错误_frag=true;
错误_kind=“#年龄”;
}
如果(邮件==“”){
$(“#邮件”)。追加(
电子邮件字段请求”);
错误_frag=true;
错误_kind=“#邮件”;
}
如果(名称==“”){
$(“#名称”).append(“
名称字段请求”);
错误_frag=true;
错误_kind=“#name”;
}
如果(错误_frag==false){
sendForm();
}否则{
var targetY=$(错误种类).offset().top;
var headerH=$(“#header”).height();
var ajast=($(窗口).width()>=761)?80:20;
$(“html,body”).animate({scrollTop:targetY-header-ajast},'fast');
}
}
函数sendForm(){
var post_data=$(“#contactForm”).serialize();
$(“#contactForm”).find(“输入,复选框,文本区域”).val(“”.end().find(“:checked”).prop(“选中”,false);
$.post(“sendMail.php”,
后期数据,
功能(数据){
如果(data.success==false){
警报(“错误”);
$(“.overlay”).remove();
}否则{
$(“正文”)。追加(“”);
$(“.overlay”).html(data.message);
$(“html,body”).animate({scrollTop:0},'fast');
}
},
“json”
);
返回false;
}
关于我的评论,我所说的拆分sendMail.php
(当然,您必须修改主页javascript以适应来自sendMail.php
的确认响应):
if(isset($\u POST['data'])和&is_数组($\u POST['data'])){
foreach($_POST['data']作为$data){}
$datatList=内爆(“,”,$_POST['data']);
}
其他的
$datatList=$_POST['data'];
如果(!isset($_POST['confirm'])){
$name=strip_标签($_POST['name']);
$email=strip_标签($_POST['mail']);
$age=preg_replace('/[^0-9]/','',$POST['age']);
$data=带标签($datatList);
$response='1
预览
名称:'.$NAME'
电子邮件:'.$EMAIL'
年龄:‘.$AGE。’
数据:'.$DATA'
';
echo json_编码(数组(“确认”=>true,“消息”=>$response));
}
否则{
$send_for_地址=”test@email.com";
$header=“From:test@email.com";
$messages=“Name:$\u POST[Name]\n”;
$messages.=“电子邮件:$\u POST[mail]\n”;
$messages.=“年龄:$\u发布[年龄]\n”;
$messages.=“工作$datatList\n”;
邮件($send_for_address,$messages,$header);
mb_内部_编码(“UTF-8”);
if(邮件($send_for_address,$messages,$header)){
$response=既然您使用的是ajax解决方案,为什么不将您的sendMail.php
分为两部分,一部分用隐藏的表单输入和确认按钮显示预览数据,然后当点击确认按钮时,它会再次调用自身,但会使用一个使用当前代码的新检查变量?谢谢您的帮助,它显示了表单data在弹出窗口中预览,但问题是单击“确认”按钮后,它不会发送电子邮件和显示感谢消息。这是我提到的关于修改javascript以适应“确认”页面的部分。您只需使用相同的javascript使用confirm
字段重新提交表单,它就会将表单重新提交给相同的页面,但这次绕过确认页面并运行提交脚本的后半部分。