首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Php和Ajax电子邮件表单

Php和Ajax电子邮件表单
EN

Stack Overflow用户
提问于 2018-06-06 06:22:07
回答 1查看 89关注 0票数 0

我对ajax完全是个新手,刚刚开始掌握php。所以我在网上得到了一个ajax和php的电子邮件代码,似乎在第一次尝试时就能正常工作,但在接下来的几天里,我突然不断地返回错误消息,那就是“有些地方出了问题”。如果我能被告知这个问题的来源以及如何修复它,我将不胜感激。非常感谢

JS

代码语言:javascript
复制
$("#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 msg_subject = $("#msg_subject").val();
    var message = $("#message").val();


    $.ajax({
        type: "POST",
        url: "php/form-process.php",
        data: "name=" + name + "&email=" + email + "&msg_subject=" + msg_subject + "&message=" + message,
        success : function(text){
            if (text == "success"){
                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){
    if(valid){
        var msgClasses = "h3 text-center tada animated text-success";
    } else {
        var msgClasses = "h3 text-center text-danger";
    }
    $("#msgSubmit").removeClass().addClass(msgClasses).text(msg);
}

HTML

代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="contactForm">
										<div class="row">
											<div class="col-md-12">
												<div class="form-group">
													<input type="text" class="form-control" id="name" placeholder="Full Name" name="name" data-error="Please input your full name" required>
													<div class="help-block with-errors"></div>
												</div>
											</div>

											<div class="col-md-12">
												<div class="form-group">
													<input type="text" class="form-control" id="email" placeholder="Your Email" name="name" data-error="Please input your email" required>
													<div class="help-block with-errors"></div>
												</div>
											</div>

											<div class="col-md-12">
												<div class="form-group">
													<textarea class="form-control" id="message" placeholder="Your Message" rows="8" data-error="Write your message" required></textarea>
													<div class="help-block with-errors"></div>
												</div>
												<div class="submit-button text-center">
													<button class="btn btn-common" id="submit" type="submit">Send Message</button>
													<div id="msgSubmit" class="h3 text-center hidden"></div>
													<div class="clearfix"></div>
												</div>
											</div>
										</div>
									</form>

PHP

代码语言:javascript
复制
<?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 {
    $email = $_POST["email"];
}

// MSG SUBJECT
if (empty($_POST["msg_subject"])) {
    $errorMSG .= "Subject is required ";
} else {
    $msg_subject = $_POST["msg_subject"];
}


// MESSAGE
if (empty($_POST["message"])) {
    $errorMSG .= "Message is required ";
} else {
    $message = $_POST["message"];
}


$EmailTo = "name@email.com";
$Subject = "New Message Received";

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "Subject: ";
$Body .= $msg_subject;
$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 :(";   //-->this is the error i get
    } else {
        echo $errorMSG;
    }
}

?>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-06 06:25:46

你的逻辑是反向的,在你的代码中,一个空的$errorMSG是好的。

代码语言:javascript
复制
 if($errorMSG != ""){ // if NOT empty
echo "Something went wrong: ".$errorMSG; 
}else{
//good
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50709745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档