【发布时间】:2013-05-18 01:26:28
【问题描述】:
我在一个页面上有多个相同表单(姓名/电子邮件/消息字段)的实例。它们都共享一个类('.contact-form')和不同的(动态生成的 ID)。
我使用 jQuery Tools Validator 验证它们(虽然我对此没有任何问题,但这并不相关):
$(".contact-form").validator();
我想问题出在我的 sendmail.php 文件中,这就是我获取所有 POST 值并验证它们的方式:
//grab the fields
$address = trim($_POST['address']);
$title = trim($_POST['title']);
$message = $_POST['message'];
//check if empty
if(empty($name) || empty($title) || empty($message)) {
$wrong = true;
}
if($wrong) {
http_response_code(400);
} else {
// do stuff
http_response_code(200);
}
现在,我面临的问题是:
- 除了页面上的第一个表格外,我无法发送任何其他表格,其余表格(即使已正确填写)我收到此错误:
注意:未定义索引:mysitesaddress 中的地址在第 3 行
- 在我发送第一个表单后 - 其他表单的行为不像预期的那样 - 即使所有字段都留空,它们也能通过(验证器在前端显示错误,但一秒钟后触发“成功”,因为 sendmail. php 返回“200 OK”。
任何想法如何修复它/检查每个表单而不是只检查第一个表单/发送后清除 POST 数据?我确信在 PHP 中有一种简单的方法可以做到这一点,我对那种语言不太熟悉(主要是前端人员),所以非常感谢任何帮助。
谢谢!
(我已经在谷歌上搜索了一段时间的答案,但看起来“POST”是一个棘手的名字,我得到的主要是 Wordpress/博客/论坛相关的东西......)
[更新]
这是每个表单的 HTML 代码:
<div class="wrapper">
<form class="contact-form" action="sendmail.php" method="post" novalidate="novalidate">
<input name="title" type="text" required="required" />
<input name="address" type="email" required="required" />
<textarea name="message" required="required" ></textarea>
<input type="Submit" value="Submit" />
</form>
<div class="sucess">
Success message that replaces form ^.
</div>
</div>
【问题讨论】:
标签: php forms validation post