我正在为我的项目构建一个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;
}
}
?>
谢谢大家!!
您没有使用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);
}
}
});
}
您可以使用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: