javascript - 带有 PHP Mailer 的联系表单,单击发送时会刷新整个页面
问题描述
我使用 PHP Mailer、JavaScript 和 Ajax 调用联系表单
一切正常,点击按钮后期待javascript。(我什至成功收到了一封电子邮件)
我的html代码:
<form id="contact-form" class="contact">
<div class="col-md-6">
<input type="text" name="name" id="fullname" placeholder="Fullname">
</div>
<div class="col-md-6">
<input type="email" name="email" id="email" placeholder="Email adress">
</div>
<div class="col-md-12">
<textarea id="message" name="message" placeholder="Message"></textarea>
</div>
<div class="col-md-12">
<button id="gumb" type="button" class="btnc" onclick="validateContact();">Send</button>
</div>
</form>
</div>
<div class="col-md-12">
<div id="response_brought"></div><!-- This will display the response from the server -->
<p> </p>
</div>
JavaSript 代码(这工作正常,但是在我按下按钮后,我收到了电子邮件,但我的最后一个回复保持不变.. 它没有改变。它显示来自 fullname=="" 的响应('请在必填字段中输入您的全名继续。谢谢。')..所以我猜 Ajax调用里面有一个错误
function validateContact() {
"use strict";
var valid = true;
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var formData = {
fullname: $("#fullname").val(),
email: $("#email").val(),
message: $("#message").val(),
};
var fullname = $("#fullname").val();
var emailreg = $("#email").val();
var message = $("#message").val();
//dataString = {'fullname': fullname, 'email': email, 'message': message, 'submitted': '1'};
if (fullname === "") { //Validation against empty field for fullname
$("#response_brought").html('<br clear="all"><div class="form_info" align="left">Please enter your fullname in the required field to proceed. Thanks.</div>');
$("#fullname").focus();
valid = false;
} else if (emailreg === "") { //Validation against empty field for email address
$("#response_brought").html('<br clear="all"><div class="form_info" align="left">Please enter your email address in the required email field to proceed. Thanks.</div>');
$("#email").focus();
valid = false;
} else if (reg.test(emailreg) === false) { //Validation for working email address
$("#response_brought").html('<br clear="all"><div class="form_info" align="left">Sorry, your email address is invalid. Please enter a valid email address to proceed. Thanks.</div>');
$("#email").focus();
valid = false;
} else if (message === "") { //Validation against empty field for email message
$("#response_brought").html('<br clear="all"><div class="form_info" align="left">Please enter your message in the required message field to proceed. Thanks.</div>');
$("#message").focus();
valid = false;
}
valid = true;
$.ajax({
type: "POST",
url: "sendemail.php",
data: formData,
success:function(data){
var response_brought = response.indexOf('Congrats');
$(".contact-form").slideUp(500);
$("#response_brought").html(response);
setTimeout(function () {
$("#response_brought").html('');
}, 10000);
},
error:function (){}
});
}
我的控制台中的错误:错误
还有我的php代码:
use PHPMailer\PHPMailer\PHPMailer;
require_once 'phpmailer/src/Exception.php';
require_once 'phpmailer/src/PHPMailer.php';
require_once 'phpmailer/src/SMTP.php';
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->Mailer = "smtp";
//$mail->SMTPDebug = 2;
$mail->SMTPAuth = True;
$mail->Host = "smtp host";
$mail->Username = "myemail";
$mail->Password = "****";
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = '587';
$fullname = $_POST['fullname'];
$email = $_POST['email'];
$message = $_POST['message'];
$success = $error = '';
if (!empty($fullname) && !empty($email) && !empty($message)) {
try {
$mail->setFrom('myemail');
$mail->addAddress('myemail');
$mail->isHTML(true);
$mail->Subject = 'Mail poslan iz spletnega obrazca';
$mail->Body = "Ime: " . $_POST["fullname"] . "<br> Email: " . $_POST["email"] . "<br>";
$mail->Body .= $message;
$mail->send();
$success = "Message sent successfully";
} catch (Exception $e) {
$error = "Sorry message could not send, try again";
}
}
谢谢您的帮助
解决方案
推荐阅读
- c - 在 C 中断言关键字
- latex - 如何在突出显示的列中对齐 CENTER(水平顶部)的内容?
- python - 使用 strftime 和 strptime 转换时间格式
- java - 为什么 Java 的 Thread.join() 不等待这段代码中的所有线程都死掉?
- arrays - jq - 成对转换数组
- excel - 如何在 VBA 中使单元格“空白”而不是“空”
- android - Jetifier 未正确解析 Play Services 依赖项
- c++ - 在 ubuntu 上使用 eclipse che 运行 c++ 代码的问题
- scheme - 替换球拍列表中的字符串
- javascript - 页面加载时的 DataTables 条件计算