- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在使用 PHP 电子邮件表单时遇到问题。它是从我设计的另一个网站(运行良好)复制和粘贴的 - 我唯一不同的是稍微更改了文件结构以进行整理。
以前,所有主要的 html 页面都位于根目录中,组件文件(JS、PHP、图像、字体等)位于 html 目录中 - 例如 $root/contact us.html
,以及 $root/html/js/forms.js
中的组件。
这次我刚刚删除了 html 目录,所以所有文件和文件夹都位于根目录中 - 例如 - $root/contact us.html, $root/js/forms.js
.
我已经更新了 PHP 和 JS 文件,使它们都指向正确的方向,但现在表单无法正常工作。
谁能指出我做错了什么?
这是代码...
HTML
<form id="project-contact-form" action="javascript:void(0)" method="post">
<div class="row">
<div class="col-12">
<div id="success-project-contact-form" class="vb-blue">Awesome - your message was sent! We'll be in touch soon.</div>
</div>
<div class="col-md-6">
<input type="text" name="name" id="name" placeholder="Name *" class="big-input">
</div>
<div class="col-md-6">
<input type="text" name="phone" id="phone" placeholder="Phone" class="big-input">
</div>
<div class="col-md-6">
<input type="text" name="email" id="email" placeholder="E-mail *" class="big-input">
</div>
<div class="col-md-6">
<div class="select-style big-select">
<select name="subject" id="subject" class="big-input">
<option value="">What's your message about?</option>
<option value="general">- a general enquiry</option>
<option value="product">- product related</option>
<option value="delivery">- about a delivery</option>
<option value="complaint">- a complaint</option>
<option value="b2b">- a business proposal</option>
</select>
</div>
</div>
<div class="col-md-12">
<textarea name="comment" id="comment" placeholder="Your message" rows="6" class="big-textarea"></textarea>
</div>
<div class="col-md-12 text-center">
<button id="project-contact-us-button margin-bottom-35" type="submit" class="btn btn-medium btn-rounded white bg-vb-red sbold-txt">SEND MESSAGE</button>
</div>
</div>
</form>
JS
"use strict";
/*==============================================================
form to email
==============================================================*/
$("#success-project-contact-form").hide();
//Project Contact us form
$('#project-contact-us-button').on("click", function () {
var error = ValidationProjectContactForm();
if (error) {
$.ajax({
type: "POST",
url: "php/project-contact-form.php",
data: $("#project-contact-form").serialize(),
success: function (result) {
// Un-comment below code to redirect user to thank you page.
//window.location.href="thank-you.html";
$('input[type=text],textarea').each(function () {
$(this).val('');
})
$("#success-project-contact-form").html(result);
$("#success-project-contact-form").fadeIn("slow");
$('#success-project-contact-form').delay(4000).fadeOut("slow");
}
});
}
});
function ValidationProjectContactForm() {
var error = true;
$('#project-contact-form input[type=text]').each(function (index) {
if (index == 0) {
if ($(this).val() == null || $(this).val() == "") {
$("#project-contact-form").find("input:eq(" + index + ")").addClass("required-error");
error = false;
} else {
$("#project-contact-form").find("input:eq(" + index + ")").removeClass("required-error");
}
} else if (index == 2) {
if (!(/(.+)@(.+){2,}\.(.+){2,}/.test($(this).val()))) {
$("#project-contact-form").find("input:eq(" + index + ")").addClass("required-error");
error = false;
} else {
$("#project-contact-form").find("input:eq(" + index + ")").removeClass("required-error");
}
}
});
return error;
}
/*==============================================================
End form to email
==============================================================*/
和 PHP
<?php
if(isset($_POST['email'])) {
$name =$_POST["name"];
$from =$_POST["email"];
$phone=$_POST["phone"];
$comment=$_POST["comment"];
$subject=$_POST["subject"];
// Email Receiver Address
$receiver="info@1230.co";
$subject="Website Contact Form";
$message = "
<html>
<head>
<title>Website Contact Form</title>
</head>
<body>
<table width='50%' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td colspan='2' align='center' valign='top'><img style=' margin-top: 15px; ' src='img/logo-forms.png' ></td>
</tr>
<tr>
<td width='50%' align='right'> </td>
<td align='left'> </td>
</tr>
<tr>
<td align='right' valign='top' style='border-top:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 5px 7px 0;'>Name:</td>
<td align='left' valign='top' style='border-top:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 0 7px 5px;'>".$name."</td>
</tr>
<tr>
<td align='right' valign='top' style='border-top:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 5px 7px 0;'>Email:</td>
<td align='left' valign='top' style='border-top:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 0 7px 5px;'>".$from."</td>
</tr>
<tr>
<td align='right' valign='top' style='border-top:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 5px 7px 0;'>Phone:</td>
<td align='left' valign='top' style='border-top:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 0 7px 5px;'>".$phone."</td>
</tr>
<tr>
<td align='right' valign='top' style='border-top:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 5px 7px 0;'>Subject:</td>
<td align='left' valign='top' style='border-top:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 0 7px 5px;'>".$subject."</td>
</tr>
<tr>
<td align='right' valign='top' style='border-top:1px solid #dfdfdf; border-bottom:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 5px 7px 0;'>Message:</td>
<td align='left' valign='top' style='border-top:1px solid #dfdfdf; border-bottom:1px solid #dfdfdf; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000; padding:7px 0 7px 5px;'>".nl2br($comment)."</td>
</tr>
</table>
</body>
</html>
";
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// More headers
$headers .= 'From: <'.$from.'>' . "\r\n";
if(mail($receiver,$subject,$message,$headers))
{
//Success Message
echo "The message has been sent!";
}
else
{
//Fail Message
echo "The message could not been sent!";
}
}
?>
感谢您的任何建议!
最佳答案
刚刚测试了您的代码,错误出在您的 html 代码中,您有 id="project-contact-us-button margin-bottom-35"
,如下面的代码所示。
<button id="project-contact-us-button margin-bottom-35" type="submit" class="btn btn-medium btn-rounded white bg-vb-red sbold-txt">SEND MESSAGE</button>
然后您将点击事件处理程序分配给 project-contact-us-button
//Project Contact us form
$('#project-contact-us-button').on("click", function () {
要使您的代码正常工作,请移除 margin-bottom-35
。 ID 不得包含此处指定的空格(空格、制表符等)www.w3schools.com/html/html_id.asp ,我不知道那是不是打字错误,但这就是破坏代码的原因
<button id="project-contact-us-button" type="submit" class="btn btn-medium btn-rounded white bg-vb-red sbold-txt">SEND MESSAGE</button>
如果引用顶级目录,也使用 ../
url: "../php/project-contact-form.php",
关于javascript - PHP 表单损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55205785/
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我目前正在尝试制作一个非常简单的应用程序,它会根据一天中的时间问候。我的代码是: open System let read() = Console.Read() let readLine() = Co
我已经运行Elasticsearch服务很长时间了,但是突然遇到了以下情况 由以下原因导致:org.elasticsearch.index.translog.TranslogCorruptedExce
我对执行以下操作的 php 重定向脚本有一个奇怪的问题: 在用户的浏览器中植入 Cookie,或者读取现有 Cookie(如果有)。 将用户重定向到另一个网址(重定向的网址是原始网址中的参数,例如 h
我正在使用 iText 7.0.0(Java 风格),似乎表格单元格 HorizontalAlignment 被忽略,因为 CENTER 和 RIGHT 都不起作用。你能重现这个吗? see th
简而言之: 我有一个可以从多个线程访问的计数器变量。尽管我已经实现了多线程读/写保护,但该变量似乎仍然以不一致的方式同时写入,导致计数器结果不正确。 深入杂草: 我使用的“for 循环”会在后台触发大
我有一个 REST 项目,在访问控制服务类中保存用户的ArrayList。一切都工作正常,直到 REST Web 服务突然抛出 java.util.NoSuchElementException。单步查
已关闭。此问题不符合Stack Overflow guidelines 。它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
当我刷新页面时,我无法显示 voteUp/Down,因为如果我执行 voteUp/Down(+1 或 -1) 并刷新页面,这会再次返回 voteUp/Down (0)。过去我使用 JSON,但社区推荐
我正在为离散时间 CPU 调度模拟器编写代码。它只是生成流程并相应地安排它们。我目前正在实现 FCFS 计划。我理解离散时间模拟器的本质,但我在用 C++ 实现时遇到了麻烦。 问题出现在handleN
尝试使用 yum 部署包时出现错误: 2016-07-07 14:14:31,296 - ERROR - error: rpmdb: BDB0113 Thread/process 6723/1
我有一个简单的同步队列 template class SynchronisedQueue { public: void Enqueue(const T& d
我正在使用 hadoop 0.20.append 和 hbase 0.90.0。我将少量数据上传到 Hbase,然后出于评估目的杀死了 HMaster 和 Namenode。在此之后,我向 Hbase
我使用 symfony 框架 1.4 创建了一个网站。我正在使用 sfguard 进行身份验证。 现在,这在 WAMP (windows) 上运行良好。我可以在不同的浏览器上登录多个帐户并使用该网站。
目前我已经实现了 HashMap private static Map cached = new HashMap(); 和 Item 是一个具有属性的对象 Date expireTime 和 byte
我试图将 2 个不同的 WPF 控件绑定(bind)到 ViewModel 中的同一属性,即 CheckBox.IsChecked 和 Expander.IsExpanded。我想要实现的行为是让 C
我希望这是一个简单的问题,但我没有找到答案。 我想让 build.gradle 文件通过替换某些变量来设置我的 Spring Boot 应用程序中的版本。这与广告一样有效: def tokens =
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
这个问题在这里已经有了答案: In a fragment shader, why can't I use a flat input integer to index a uniform array o
我已经下载了 OSM 世界地图。解析时出现异常: osm bound changeset (...) changeset Exception in thread "main" org.xml.sax.
我是一名优秀的程序员,十分优秀!