【发布时间】:2014-08-06 13:15:42
【问题描述】:
我有一个主要由名为“buildform”的类生成的表单。 现在表单的每个部分都在它所在的位置上验证自己。 这看起来像这样:
echo $frm->create_input("customer_nr", "Customer Nr.", "text:empty:int");
这里的第三个属性是条件(这里:文本字段,不是空的,只有整数)。 函数“create_input”调用更多函数,在提交表单时直接验证表单字段。 我这样做有多种原因:
- 出现错误时,我可以直接将表单着色为红色
- 我只需要告诉表单属性一次,而不是在创建和验证时。
这真的很舒服,到目前为止,创建表单非常容易。
然后用户的验证错误将存储在一个类变量中,如下所示:
function add_err($n_errmsg) {
$this->errmsgs[] = $n_errmsg;
return;
}
在表格的最后,我会显示如下错误:
if(isset($_POST["sbm"])) {
$ret_err = $frm->ret_err();
if(!empty($ret_err)) {
echo $ret_err;
}
else {
// send success mail
}
}
这一切都没有任何问题。 现在我有了在提交表单时隐藏表单的想法。但是在加载表单之前,我必须确保没有错误!
我想要类似的东西
else {
$hideform = true;
// send success mail
}
目前这是不可能的,因为在“生成”表单字段时会生成错误。 如果我将错误移到顶部,则错误总是在那里“空”,因为稍后会在下面完成验证...
您知道我该如何解决这个问题吗? 我必须在加载表单之前验证它们还是有其他方法?
谢谢! 最好的祝福 托比
【问题讨论】:
-
发送电子邮件后,将用户重定向到您没有该表单的登录页面。或者您可以重定向到同一页面,并在该表单上方显示一条会话消息。
-
能否请您展示您班级的
create_input方法(或者如果它很小,则为整个班级/如果不是,则为pastebin)。我认为需要一个简单的重构,但需要看代码 -
它会创建表单域并调用验证函数:paste.ofcode.org/35ucC4QFUJPWDtikWgfa9xX 你也需要验证函数吗?
标签: php forms class validation hide