Ajax/PHP联系人表单问题


Ajax/PHP contact form issue

我正在为我的项目构建一个ajax/php联系人表单,其中包含以下字段:

姓名(必填)、电子邮件(必填),主题(不必填)和网站(不必填

一切都很好,现在唯一的问题是,如果用户没有在主题和/或网站字段中键入任何内容,我收到的电子邮件会显示这两个字段,如下所示:

主题:(显示空白)

网站:(显示空白)

如果用户没有键入任何内容,那么是否可以完全不显示这两个字段?因此,在我收到的电子邮件中,我只收到:

名称:[用户名]

电子邮件:[用户电子邮件地址]

我只是发布PHP代码,因为我相信这只与PHP有关,而与Ajax脚本无关:

<?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"];
}
// SUBJECT
$subject = $_POST["subject"];
// WEBSITE
$website = $_POST["website"];
// MESSAGE
if (empty($_POST["message"])) {
    $errorMSG .= "Message is required ";
} else {
    $message = $_POST["message"];
}

$EmailTo = "email@myemail.com";
$Subject = "New Message Received";
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $name;
$Body .= "'n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "'n";
$Body .= "Website: ";
$Body .= $website;
$Body .= "'n";
$Body .= "Subject: ";
$Body .= $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 :(";
    } else {
        echo $errorMSG;
    }
}
?>

谢谢大家!

您可以使用if语句检查条件。类似这样的东西:

if (!empty($subject)) {
    $Body .= "Subject: ";
    $Body .= $subject;
    $Body .= "'n";
}

您不使用formData,因此disabling字段不起作用。

如果你想去掉空变量,可以根据这样的条件构建数据

function submitForm() {
    var data = {
        name: $("#name").val(),
        email: $("#email").val()
    }
    if($("#subject").val() !== "") {
        data.subject = $("#subject").val()
    }
    if($("#website").val() !== "") {
        data.website = $("#website").val()
    }
    $.ajax({
        type: "POST",
        url: "php/form-process.php",
        data: data,
        success: function(text) {
            if (text == "success") {
                formSuccess();
            } else {
                formError();
                submitMSG(false, text);
            }
        }
    });
}