我一直在使用文档{Zem Form Advanced Usage部分 - {3}}中的多页表单教程。
我的第一页加载正常,但是当我提交它时,第二页加载并包含验证错误消息。 (显然,在用户填写字段之前,我不希望看到此页面的验证错误...)
我已将其追踪到formIsValid()函数的最后一行。似乎这里对三种形式的所有元素(不仅仅是当前的元素)运行验证,所以在第二页上显示错误并不奇怪。
我在本教程末尾的评论中尝试了这个建议,即$ data [$ key] = $ info [$ key]。
您是否对本教程有所了解?你是怎么解决这个问题的?
非常感谢任何帮助!
答案 0 :(得分:3)
我遇到了同样的问题,这就是我如何解决它。
替换
public function formIsValid()
{
$data = array();
foreach ($this->getSessionNamespace() as $key => $info) {
$data[$key] = $info;
}
return $this->getForm()->isValid($data);
}
使用
public function formIsValid()
{
$data = array();
foreach ($this->getSessionNamespace() as $key => $info) {
$data[$key] = $info[$key];
}
return (count($this->getStoredForms()) < count($this->getPotentialForms()))? false : $this->getForm()->isValid($data);
}
答案 1 :(得分:0)
文件内容如下:
目前,多页表单不是 Zend_Form正式支持; 但是,大部分都支持实施 它们是可用的,可以使用 用一点额外的工具。
创建多页表单的关键 是利用子形式,但是 每个只显示一个这样的子表格 页。这允许您提交 a 一次单个子表格和 验证它,但不处理表单 直到所有子表格都完整。
您确定已经验证了单个子表单而不仅仅是整个表单吗?