Zend framework Zend中的多页表单太早验证所有表单

Zend framework Zend中的多页表单太早验证所有表单,zend-framework,Zend Framework,我一直在学习文档Zend Form Advanced Usage部分中的多页表单教程 我的第一个页面加载良好,但是当我提交它时,第二个页面加载并包含验证错误消息。(显然,在用户填写字段之前,我不希望看到此页面的验证错误…) 我一直跟踪到formIsValid()函数的最后一行。这里似乎对三种表单中的所有元素(不仅仅是当前表单)都进行了验证,因此在第二页上显示错误也就不足为奇了 我在教程末尾的评论中尝试了这个建议,即$data[$key]=$info[$key] 你在这篇教程中有没有尝试过?你是如

我一直在学习文档Zend Form Advanced Usage部分中的多页表单教程

我的第一个页面加载良好,但是当我提交它时,第二个页面加载并包含验证错误消息。(显然,在用户填写字段之前,我不希望看到此页面的验证错误…)

我一直跟踪到formIsValid()函数的最后一行。这里似乎对三种表单中的所有元素(不仅仅是当前表单)都进行了验证,因此在第二页上显示错误也就不足为奇了

我在教程末尾的评论中尝试了这个建议,即$data[$key]=$info[$key]

你在这篇教程中有没有尝试过?你是如何解决这个问题的


非常感谢您的帮助

文件内容如下:

目前,不支持多页表单 以Zend_形式正式支持; 然而,大多数人支持实施 它们是可用的,可以利用 用一点额外的工具

创建多页表单的关键 就是利用子表单,但是 每次仅显示一个子表单 页这允许您提交a 一次一个子表单和 验证它,但不处理表单 直到所有子表单完成


您确定只验证了一个子表单而不是整个表单吗?

文档内容如下:

目前,不支持多页表单 以Zend_形式正式支持; 然而,大多数人支持实施 它们是可用的,可以利用 用一点额外的工具

创建多页表单的关键 就是利用子表单,但是 每次仅显示一个子表单 页这允许您提交a 一次一个子表单和 验证它,但不处理表单 直到所有子表单完成


您确定只验证了一个子表单而不是整个表单吗?

我遇到了同样的问题,这就是我解决问题的方法

通过替换

public function formIsValid()
    {
        $data = array();
        foreach ($this->getSessionNamespace() as $key => $info) {
            $data[$key] = $info;
        }

        return $this->getForm()->isValid($data);
    }

公共函数formIsValid()
{ 
$data=array();
foreach($this->getSessionNamespace()作为$key=>$info){
$data[$key]=$info[$key];
}
返回(count($this->getStoredForms())getPotentialForms())?false:$this->getForm()->isValid($data);
}

我遇到了同样的问题,这就是我解决问题的方法

通过替换

public function formIsValid()
    {
        $data = array();
        foreach ($this->getSessionNamespace() as $key => $info) {
            $data[$key] = $info;
        }

        return $this->getForm()->isValid($data);
    }

公共函数formIsValid()
{ 
$data=array();
foreach($this->getSessionNamespace()作为$key=>$info){
$data[$key]=$info[$key];
}
返回(count($this->getStoredForms())getPotentialForms())?false:$this->getForm()->isValid($data);
}

嗨,金姆,你能把你的代码发出来让我看看吗?另外,您使用的框架版本是什么?嗨,Dean,谢谢您的回复。(我看到你的网站上运行得很好!)我已经把我的问题缩小到验证器上,并在这里开始了一个单独的问题,嗨,Kim,你能发布你的代码让我看看吗?另外,您使用的框架版本是什么?嗨,Dean,谢谢您的回复。(我看到你的网站上运行得很好!)我已经把我的问题缩小到了验证器,并在这里开始了一个单独的问题,谢谢Akond。是的,这样做的目的是验证单个子表单,并在其有效时将其存储在会话中。然后尝试验证整个表单,作为是否已提交所有表单的测试…如果确实要这样做,则必须保留所有子表单的所有输入。但我不会那样做的。谢谢阿康。是的,这样做的目的是验证单个子表单,并在其有效时将其存储在会话中。然后尝试验证整个表单,作为是否已提交所有表单的测试…如果确实要这样做,则必须保留所有子表单的所有输入。但我不会那样做。