2013-09-14 3 views
1

У меня есть форма, которая начинается с Select с двумя параметрами. Существует несколько других полей, некоторые из которых необходимы для первого варианта выбора, а остальные - для второго варианта выбора.Условная валидация в ZF2

В представлении я использую кнопку Выбрать, чтобы показать/скрыть соответствующие/нерелевантные поля. Большинство этих полей требуются, когда выбран их вариант в Select.

Каков наилучший способ проверки полей, которые имеют отношение к тому, что выбрано в Select?

ответ

0

В контроллере, вы могли бы сделать что-то подобное (ключ является форма в 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 
(...) 
Смежные вопросы