Zend 框架 - 定制表单验证

Posted

技术标签:

【中文标题】Zend 框架 - 定制表单验证【英文标题】:Zend framework - bespoke form validation 【发布时间】:2011-08-29 12:26:00 【问题描述】:

我在做一个多页表单,但我没有使用子表单 - 只是将数据保存在 mysql 中。

我想在每个表单上使用验证器,但即使验证失败也允许表单提交。我想使用验证器在我的数据库中发布一个标志来说明表单是否通过或失败验证。

这样做的原因是允许每个表单在几周内更新,但所有表单的最终提交取决于每个单独的表单是否经过验证(根据数据库中设置的标志)。

任何提示都将不胜感激,尤其是在修改验证脚本方面。

【问题讨论】:

【参考方案1】:

我认为你不需要修改任何东西。

Zend 不进行 javascript 表单验证,它是在服务器端完成的,所以无论如何都会提交表单并生成 POST/GET 数据。只有在你的行动中,你才会打电话给$form->isValid($_POST);

您提交初步步骤和最终步骤的操作应该不同,例如processPreliminaryAction()processFinalAction()

在您的初步步骤中,您可以遍历提交的表单元素并在每个元素上调用isValid(),然后您可以保存该字段在 MySQL 中是否有效及其值。

在您的最终提交中,您在整个表单上调用 isValid() 并继续执行您需要执行的操作,前提是它为 TRUE。

【讨论】:

以上是关于Zend 框架 - 定制表单验证的主要内容,如果未能解决你的问题,请参考以下文章

Zend 框架中的表单级别验证

Zend 框架表单与 jquery

使用 Jquery 和 Zend 进行表单验证

文件上传表单的 Zend 验证器大小 - Zend Framework 2.3

文件上传表单的 Zend 验证器大小 - Zend Framework 2.3

Zend Form - 一页中的多个表单和(CSRF)令牌验证