我有一个表格,它以 Select 开头,有两个选项。还有几个其他字段,其中一些是第一个 Select 选项所必需的,而其他字段是第二个 Select 选项所必需的。
在视图中,我使用 Select 来显示/隐藏相关/不相关的字段。Most of these fields are required when their option in the Select is selected.
仅验证与 Select 中所选内容相关的字段的最佳方法是什么?
我有一个表格,它以 Select 开头,有两个选项。还有几个其他字段,其中一些是第一个 Select 选项所必需的,而其他字段是第二个 Select 选项所必需的。
在视图中,我使用 Select 来显示/隐藏相关/不相关的字段。Most of these fields are required when their option in the Select is selected.
仅验证与 Select 中所选内容相关的字段的最佳方法是什么?
在您的控制器中,您可以执行类似的操作(关键是表单的setValidationGroup函数):
//GET THE FORM
$form = $this->getServiceLocator()->get( '<FORM_NAME>' );
//GET THE POSTED DATA
$request = $this->getRequest();
$data = get_object_vars( $request->getPost() );
//DEPENDING ON THE SELECT VALUE, VALIDATE THIS OR THAT FIELDS
if ( $data[ 'SELECT_NAME' ] === 'A' ) {
$form->setValidationGroup( array( 'INPUT_A', 'INPUT_B' ) );
} else {
$form->setValidationGroup( array( 'INPUT_C', 'INPUT_D' ) );
}
//PERFORM THE FORM VALIDATION
if ( !$form->isValid() ) {
//FORM IS WRONG
( ... )
}
//FORM IS OK
( ... )