2010-07-07 5 views
1

J'essaie de comprendre comment obtenir cette forme de zend à valider. Je ne comprends pas:ne peut pas comprendre comment valider zend_form

Les arguments addValidator() sont-ils des validateurs spécifiques? Y a-t-il une liste quelque part de ces validateurs?

J'ai ce dans les formes/contact.php:

Application_Form_Contact classe étend Zend_Form {

public function init() 
{ 
    $this->setAction('index/process'); 
    $this->setMethod('post'); 

    $name = new Zend_Form_Element_Text('name'); 
    $name->setLabel('Name:'); 
// $name->addValidator('alnum'); 
    $name->setRequired(true); 

    $email = new Zend_Form_Element_Text('email'); 
    $email->setLabel('Email:')->setRequired(true); 

    $confirm = new Zend_Form_Element_Text('confirm'); 
    $confirm->setLabel('Confirm Email:')->setRequired(true); 

    $phone = new Zend_Form_Element_Text('phone'); 
    $phone->setLabel('Phone:')->setRequired(true); 

    $subject = new Zend_Form_Element_Select('subject'); 
    $subject->setLabel('Subject:')->setRequired(true); 
    $subject->setMultiOptions(array('Performance'=>'Performance', 
            'Workshop'=>'Workshop', 
            'Other'=>'Other' 
           )); 


    $message = new Zend_Form_Element_Textarea('message'); 
    $message->setLabel('Message:')->setRequired(true); 
    $message->setAttrib('rows','6'); 
    $message->setAttrib('cols','30'); 

    $submit = new Zend_Form_Element_Submit('Submit'); 



    $this->addElements(array( $name, 
        $email, 
        $confirm, 
        $phone, 
        $subject, 
        $message, 
        $submit 
)); 


      $this->setElementDecorators(array 
     ('ViewHelper', 

     array(array('data' => 'HtmlTag'), array('tag' => 'td')), 
     array('Label' , array('tag' => 'td')), 
     array(array('row' => 'HtmlTag') , array('tag' => 'tr')) 

     )); 

    $submit->setDecorators(array('ViewHelper', 

     array(array('data' => 'HtmlTag'), array('tag' => 'td')), 
     array(array('emptyrow' => 'HtmlTag'), array('tag' => 'td', 'placement' => 'PREPEND')), 
     array(array('row' => 'HtmlTag') , array('tag' => 'tr')) 
     ));     

    $this->setDecorators(array(
     'FormElements', 

     array('HtmlTag' , array('tag' => 'table' , 'class' => 'formTable')), 
     'Form' 
    ) 
    ); 
} 
} 

mon contrôleur est:

public function indexAction() 
{ 

    $this->view->form = new Application_Form_Contact(); 

} 

public function processAction() 
{ 
//    $this->view->form = new Application_Form_Contact(); 
//  
    if ($this->_request->isPost()) { 
       $formData = $this->_request->getPost(); 

      // echo 'success'; 
       $this->view->data = $formdata; 

      } else { 
     //  $form->populate($formData); 
      } 


} 

Je suis un débutant , donc je fais probablement des erreurs évidentes que je ne vois pas. Je suis en train de faire la validation de base:

  • tous les champs doivent être remplis
  • tous les fichiers html se dépouilla
  • email et confirmer
  • champs e-mail doit correspondre
  • email doit être au format valide.

Toute aide serait grandement appréciée!

Répondre

5

Avez-vous essayé isValid():

$form = new forms_ContactForm(); 

    if ($this->_request->isPost()) { 
     $formData = $this->_request->getPost(); 
     if ($form->isValid($formData)) { 
      echo 'success'; 
      exit; 
     } else { 
      $form->populate($formData); 
     } 
    } 

    $this->view->form = $form; 

from

A propos des validateurs:

$firstName = new Zend_Form_Element_Text('firstName'); 
    $firstName->setLabel('First name') 
       ->setRequired(true) 
       ->addValidator('NotEmpty'); 

    $lastName = new Zend_Form_Element_Text('lastName'); 
    $lastName->setLabel('Last name') 
      ->setRequired(true) 
      ->addValidator('NotEmpty'); 

    $email = new Zend_Form_Element_Text('email'); 
    $email->setLabel('Email address') 
      ->addFilter('StringToLower') 
      ->setRequired(true) 
      ->addValidator('NotEmpty', true) 
      ->addValidator('EmailAddress'); 

Heres le lien vers la documentation Zend à propos fiorms Zend et validateurs. Creating Form Elements Using Zend_Form_Element

+0

Eh bien, si j'avais les validateurs appropriés alors il serait peut-être savoir si c'est valide, mais je ne sais pas comment utiliser les addValidators() – Joel

+0

@Iznogood nice-merci! Pouvez-vous me montrer une liste des validateurs? J'ai cherché haut et bas. – Joel

+0

@Joel Edité à nouveau. De là, vous pouvez toujours rechercher google pour les validateurs de formulaire zend et continuer à partir de là. Beaucoup d'informations là-bas. – Iznogood

Questions connexes