Jak sprawdzić, czy pojedyncze pole formularza przeszlo juz walidacje?? Zend Framework

0

Controller

        if ($this->_request->isPost()){
           
            if ($form->isValid($_POST)){
                
                $data = $form->getValues();
                $query = new Query_Model_Query();
                $query = $this->prepareQueryObj($query, $contactId, $developerId, $investmentId);               
                
                if($query->save($data)){
                    $this->_helper->FlashMessenger($this->view->t->_('Query has been send'));
                    $this->dialogRefresh();                  
                }
                else{
                    $this->_helper->FlashMessenger($this->view->t->_('red$Query has not been send'));
                    $this->dialogRefresh();                  
                }
                
            } else {
                $form->populate($_POST);
                $this->view->form = $form;

                $form->removeElement('pesel');

                foreach($form->getErrors() as $element_errors) {
                    foreach($element_errors as $error) {
                        if($error == 'isEmpty') {
                                $this->view->error_messages = $this->view->t->_("Please fill in all required fields");
                        }
                    }
                }
            }
        }      
        
        $this->view->form = $form;
    }

Po kliknięciu submit jezeli formularz nie przeszedł walidacji chciałbym zrobić rzecz X dla tych inputów, które przeszły już wlidację ("dezaktywować je" tylko zeby wartosc byla widoczna) i rzecz Y, dla tych które nie przeszły walidacji. Sporo już się tego naszukałem, ale niestety nie umiem sobie poradzić.

Potrzebna mi jest metoda isValid, dzieki której bede mógł np. przejść przez poszczególne pola formularza i uzyskać te, które przeszły walidację i w osobnej tablicy te, które nie przeszły walidacji. Dobrze by było gdybym mógł również sprawdzić np. isValid($poleFormularza) i otrzymać true/false.

0

Tak sobie poradziłem : )

                /* Removes odd field after
                 * validation by BV_Validate_OneOfTwoOrBoth
                 */

                $formErrors = $form->getErrors();
                $formValues = $form->getValues();

                if(empty($formErrors['pesel']) && empty($formValues['identity_card_number'])) {
                        $form->removeElement('identity_card_number');
                        $form->pesel->setDescription('');
                }

                /* Removes (and disables) default input
                 * look after successful validation
                 */

                foreach ($formValues as $key => $value) {
                    if(empty($formErrors[$key]) && !empty($value)){
                        $form->$key->addDecorator(
                            'HtmlTag', array(
                                'tag'=>'dd',
                                'class'=>'validated-input',
                                'readonly'=>true))
                            ->setAttrib('readonly', 'true');
                    }
                }

1 użytkowników online, w tym zalogowanych: 0, gości: 1