当前位置: 首页 > 知识库问答 >
问题:

Ajax/PHP联系人表单问题

年运珧
2023-03-14

我正在为我的项目构建一个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;
    }
}

?>

谢谢大家!!

共有2个答案

龚睿
2023-03-14

您没有使用formData,因此禁用该字段将不起作用。

如果希望去掉空变量,请根据如下条件构建数据

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);
            }
        }
    });
}

屠振濂
2023-03-14

您可以使用if语句检查条件。大概是这样的:

if (!empty($subject)) {
    $Body .= "Subject: ";
    $Body .= $subject;
    $Body .= "\n";
}
 类似资料:
  • 最后编辑:现在一切正常工作将在下面的工作代码,清理后像idealCastle说,并修复了一些语法错误,一切正常工作,因为它应该与javascript验证谢谢大家 超文本标记语言代码: Javascript文件: PHP文件:

  • 我有麻烦为我的联系表单获取正确的php脚本。我设法让它电子邮件我,但它没有显示一个名字,电子邮件或文本在电子邮件。 PHP脚本 联系表单

  • 我已经从输入字段和选择元素的ajax联系,它没有给出应有的结果。 HTML 表单代码(名称作为输入,苹果手机作为选择元素) JS代码 发送.php)代码 当我使用来自任何人的姓名时的结果 [object HTMLSelectElement]这是一个错误,select元素似乎不工作,没有传递其选定的值 所以任何想法?~谢谢

  • 联系人名单     登录至联系人名单 确认登入状态 编辑联系人名单

  • 我有AMP中的HTML表单,带有POST操作;电子邮件的PHP文件使用Sendgrid API。我尝试了Json重定向的headers响应,但不起作用。 出于这个原因,我应用了JavaScript重定向(是的,我知道,这会为AMP验证生成错误,但我需要重定向到跟踪在线转换的感谢页面)。 PHP文件工作正常,所有电子邮件都是发送的,但没有JavaScript重定向,只有电子邮件发送的div成功或错误

  • 每次尝试提交此联系人表单时,都会收到以下错误消息: “请输入您的消息。” 名称错误消息和电子邮件错误消息不会出现,除非我将它们留空。我尝试在HTML中指定post。 以下是HTML: 下面是PHP: