Zend_Form交叉验证

时间:2010-10-13 12:52:10

标签: php zend-framework zend-form

我正在研究一个系统,我有一个表格,我需要进行交叉验证。通过交叉验证我的意思是:如果有人来自美国,系统必须能够检查所选择的州是否是有效的美国州而不是加拿大省。理想情况下,错误输出消息应位于fautive字段旁边。 (我使用默认的zend_form装饰器)

在这个阶段,我希望避免ajax确保我的php后备工作在用户已禁用javascript的情况下。将来我将重新加载列表并根据国家/地区显示州/省。

1 个答案:

答案 0 :(得分:3)

您应该为此任务编写自定义验证程序,并将此验证程序添加到state元素。

在验证器的isValid方法中,传递的第二个参数是所有表单值的数组。然后,您可以交叉引用州和国家/地区以确保其有效。

验证上下文在Reference Guide中解释,其示例是比较两个密码字段,但您应该能够将相同的原则应用于您的代码。