问题标签 [zend-form]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2019 浏览

php - 在 Zend_Form 中,如何避免 Zend_Validate_Email 产生多个错误?

我正在构建一个 ZendFramework 应用程序,它作为一个登录表单,要求输入电子邮件地址和密码——在尝试登录数据库之前验证电子邮件地址似乎是有意义的,因为无效的电子邮件永远不会导致有效的点击。Zend_Validate_EmailAddress 似乎是正确的方法,但我遇到了它产生多个错误的问题(底部的问题,在代码之后)。

我的表格目前有以下

在控制器中,我直接将表单传递到视图中:

在视图中,它直接被回显:

结果目前是这样的:

我想知道的是:是否可以将 Zend _Validate _EmailAddress 配置为只产生一个电子邮件无效错误?我所说的“配置”是指不扩展类并用我自己的逻辑覆盖逻辑。

TIA。

0 投票
10 回答
7618 浏览

php - Zend Framework 表单、装饰器和验证:我应该回到纯 HTML 吗?

我目前正在开发一个包含很多表单的相当大的应用程序。

到目前为止,我一直在手动编写表单并编写自己的验证逻辑,但我决定是时候开始使用 Zend_Form 了,它是内置的验证例程。

然而,我不断地偶然发现越来越多的关于(缺乏)灵活性引起的问题Zend_Form_Decorator。像向单个输入元素添加额外按钮这样的简单任务变得非常困难。

我现在已经到了一个地步,我正在认真考虑完全放弃Zend_Form_Element+Zend_Form_Decorator方法,但我不想失去出色的验证选项。

基本上,我想要两全其美:

  • 以最终用户看到的方式编写表单:使用纯 HTML
  • 轻松将服务器端验证添加到表单字段,而不会破坏太多 ZF 标准行为

我正在考虑的一个可能的解决方案是在服务器端编写表单,就像在视图中一样。这将使我能够轻松地验证我自己的表单,但(在我看来相当大的)缺点是每个表单都应该定义两次,这感觉很明显是错误的。

是否有任何指导方针来做到这一点?你们中是否有人遇到过同样的情况,如果有,你们是如何解决这些问题的?

我非常想听听你的观点。

0 投票
1 回答
380 浏览

php - 是否可以完全控制 zend_form 布局?

我已经使用 Zend Framework 几个星期了,所以这可能是一个完整的菜鸟问题,但我想知道是否有一种方法可以使用 Zend_Form 以明确的方式自定义表单的布局。我到处查看,但我发现的每个 Zen-Form 示例都使用 echo 示例。

例如,当我使用 Smarty 和 HTML_QuickForm 时,我可以选择将每个表单元素放在我想要的页面上。

但是使用 Zend Framework,看起来我必须在实际的 php 代码中装饰表单元素并回显完成的表单:

如果不可能,是否有任何 php 框架允许这种级别的控制?

0 投票
3 回答
3069 浏览

zend-framework - 在 Zend Form 的 MultiOptions 元素中填充日期

你好我有一个这样的数组:

但是,当我将此数组填充到 Zend_Form 时,它只显示文本框元素中的数据,该元素具有与数组索引中定义的相同 ID,而不是多选下拉元素中的定义。例如:

但是在 MultiOptions 中它不显示任何记录。

0 投票
1 回答
467 浏览

php - Zend_Form 显示组问题

这是我扩展 Zend_Form 类的一个简短片段:

问题是当我打印表单时,它只打印提交按钮,不存在带有输入字段的字段集(那些是普通的 Zend_Form_Element_Text 元素)。

编辑:如果我删除 $this->addDisplayGroup() (或评论它),文本元素显示没有问题。

0 投票
3 回答
3735 浏览

php - 使用 Zend_Form_Element_Select 时访问 InArray 验证器的自定义错误消息

我正在使用 Zend Framework 1.62(因为我们正在将成品部署到 Red Hat 实例,它没有足够的 PHP 版本来支持 > ZF1.62)。

使用 Zend Form 创建表单时,我添加了一个选择元素,添加了一些多选项。我使用 Zend Form 作为对象内验证层,通过它传递对象值并使用 isValid 方法确定所有值是否都在正常参数范围内。

Zend_Form_Element_Select 完全按预期工作,如果输入了除我添加的多选选项之一之外的任何其他值,则显示无效。

当我想在某个时候显示表单时出现问题,我无法编辑由 ZF 自动添加的预注册“InArray”验证器创建的错误消息。我知道我可以禁用此行为,但除了错误消息之外,它的效果很好。我尝试了以下方法:

// 在应用程序的其他地方引起冲突,并且不允许对错误消息进行精细控制。

有人有想法么?

0 投票
2 回答
602 浏览

php - Zend 框架形式的非理性行为

让我们从一个简短的代码片段开始,我将用它来证明我的观点:

这条重要的线是:

这意味着输入字段不是必需的,您可以在不填写表单的情况下提交表单。但是,这也意味着如果您选择填写此字段,则任何过滤器和验证器都不会应用于它。

常识告诉我这是一种不合理的行为。我理解与 HTML 输入字段相关的“必需”一词的方式:如果未填写,则不需要的输入字段应返回 NULL,但如果用户决定填写它,则过滤器和验证器都应适用于它。这对我来说很有意义。你同意我的观点还是我的常识不那么普遍?

现在是更实际的问题,因为这就是 Zend_Form 的行为方式,我如何才能实现如上所述的不需要的字段(如果用户没有输入任何内容,则返回 NULL 否则过滤器和验证器通常适用)。

0 投票
1 回答
1960 浏览

zend-framework - Zend_Form and decorators : how to insert html tags on a multi options radioform?

I'm currently trying to use Zend_Form, and it's decorators mechanism, in order to output some well formated HTML, but I don't manage to have the wanted output.

Concretely, I have a radio button form element (Zend_Form_Element_Radio), with a multiple option registred in it, like this:

Here is the wanted HTML output:

I have turned in many ways the problem, but I don't see any solution. Any help will be appreciated !

0 投票
3 回答
2605 浏览

zend-framework - Zend_Form 与 xthml 脚本(不使用装饰器)

(我按照这篇文章了解了如何在不使用装饰器的情况下使用 Zend_Form 的逻辑。)

在操作中,我创建 Zend_Form 对象并在渲染之前将表单分配给视图:

然后我将以下代码添加到它的视图脚本(index.phtml)

但它得到一个错误

消息:名称元素的装饰器不存在

我没有使用装饰器,我的代码有什么问题。

这是完整的自定义错误消息

我如何在不使用装饰器的情况下解决这个问题

0 投票
2 回答
2308 浏览

php - zend_Form:显示验证和错误信息

我的项目中有一个通用的“联系表”,在大多数页面(如索引、关于我们等)中都会调用。该页面接受用户输入并向管理员发送电子邮件,然后返回到调用它的页面

联系表格的代码是

请注意,$this->setAction('contactus/index'); 行。我的想法是,如果我从索引页面填写此表格(注意这是一个常见表格),它会通过“contactus 控制器”索引操作。从那里发送邮件并返回索引页面。如果页面是从关于我们页面填充的,它会返回到关于我们页面。

它通过代码包含在不同的页面中,如索引、关于等

控制器代码看起来像

一切正常,如果我填写此表格,邮件就会消失,只是表格未经过验证。例如,发送的邮件可能没有“全名”,这是一个必填字段

另一个问题是无法显示像 ''Thank you' 这样的消息。

这可能是因为我使用了 $this->_helper->redirector 方法。表单被重定向,因此丢失了值。如果我使用$this->_helper->forwarded或者$this_forward()它也不起作用。

任何人都可以为我建议一种方法来正确地处理验证消息和其他消息吗?对不起我的英语不好,提前谢谢