繁体   English   中英

AJAX和PHP联系表格和电子邮件

[英]AJAX and PHP contact form and email

我一直在使用XAMPP在本地主机上实时查看此代码。 但是,几乎看不到PHP脚本是否有效。 它不会发送电子邮件,因此绝对不能在这方面工作。 我已添加服务器端验证,但未显示任何错误消息。 为什么AJAX请求不起作用?

 $("#contactForm").validator().on("submit", function (event) { if (event.isDefaultPrevented()) { //handle the invalid form formError(); submitMSG(false, "Did you fill in the form properly?"); } else { //everything looks good! event.preventDefault(); submitForm(); } }); function submitForm() { //Initiate Variables with form content var name = $("#name").val(); var email = $("#email").val(); var message = $("#message").val(); $.ajax({ type: "POST", url: "php/process.php", data: "name=" + name + "&email=" + email + "&message=" + message, sucess: function(text) { if (text == "sucess") { formSuccess(); } else { formError(); submitMSG(false,text); } } }); } function formSuccess() { $( "#contactForm")[0].reset(); submitMSG(true, "Message Submitted!"); } function formError() { $("#contactForm").removeClass().addClass('shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() { $(this).removeClass(); }); } function submitMSG(valid, msg) { var msgClasses; if (valid) { msgClasses = "h3 text-center tada animated text-success"; } else { msgClasses = "h3 text-center text-danger"; } $("#msgSubmit").removeClass().addClass(msgClasses).text(msg); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://cdn.jsdelivr.net/jquery.validation/1.15.1/jquery.validate.min.js"></script> <div class="col-md-6 textile"> <h3 class="form-font text-center">Send me a message</h3> <form role="form" id="contactForm"> <div class="row"> <div class="form-group form-font col-sm-6"> <label for="name" class="h4">Name</label> <input type="text" class="form-control" id="name" placeholder="Enter name" required> <div class="help-block with-errors"></div> </div> <div class="form-group form-font col-sm-6"> <label for="email" class="h4">Email</label> <input type="email" class="form-control" id="email" placeholder="Enter email" required> <div class="help-block with-errors"></div> </div> </div> <div class="form-group form-font"> <label for="message" class="h4">Message</label> <textarea id="message" class="form-control" rows="5" placeholder="Enter your message" required></textarea> <div class="help-block with-errors"></div> </div> <button type="submit" id="form-submit" class="btn btn-success btn-lg pull-right">Submit</button> <div id="msgSubmit" class="h3 text-center hidden"></div> </form> </div> 

<?php
$errorMSG = "";
//Name
if (empty($_POST["name"])) {
    $errorMSG = "Name is required ";
} else {
    $name = $_POST["name"];
}
//Email
if (empty($_POST["email"])) {
    $errorMSG = "Email is required ";
} else {
    $name = $_POST["email"];
}
//Message
if (empty($_POST["message"])) {
    $errorMSG = "Message is required ";
} else {
    $name = $_POST["message"];
}
$EmailTo = "thegmailaddress@gmail.com"
$Subject = "New Message Received";
//prepare email body text
$Body .= "";
$Body .= "Name: ";
$Body .= $name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $message;
$Body .= "\n";
//send email
$success = mail($EmailTo, $Subject, $Body, "From:".$email);
//redirect to success page
if ($success && $errorMSG == "") {
    echo "success";
} else {
    if ($errorMSG == "") {
        echo "Something went wrong";
    } else {
        echo $errorMSG;
    }
}
?>

此问题是因为您的成功回调拼写错误。 你有:

sucess: function(text) {

它应该是:

success: function(text) {

除了杰里米·哈里斯(Jeremy Harris)所说的之外,您还丢失了PHP代码中的分号:

$EmailTo = "example@gmail.com"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM