2011-02-17 5 views
0

Comment valider la forme Zend? (Balise d'ouverture)Comment valider la balise d'ouverture Zend Form: Zend Form

Exemple:

Forme:

class MyForm extends Zend_Form {  
    function init()  { 
     $this->addElement('select','my_select',array(
     'label'=>'My select :', 
     'required'=>true,    
     'multioptions'=>array(''=>'-select please-','1'=>'value1','2'=>'value2')    
     'validators'=>array(
     array('NotEmpty', true, array('messages' => 'This field is required'))), 
    )); 
      } } 

Controller:

$form = new MyForm(); 

if ($this->_request->isPost()) { 
    $form_name=$this->getRequest()->getParams();   
     if($form->isValid($form_name)){ 
      echo "==success=="; 
     } 
     else{ 
      echo "==no success=="; 
     } 
} 

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

Vue:

// Render the form opening tag 
echo $this->form->renderForm(false); 
echo '<table>'; 
echo '<tr>'; 
echo '<th>' 
// Render the label 
echo $this->form->my_select->renderLabel();  
echo '</th> 
echo '<td>'; 
// Render the select 
echo $this->form->my_select->renderViewHelper(); 
echo $this->form->my_select->renderErrors();  
echo '</td>'; 
echo '</tr>'; 
echo '</table>'; 
echo '</form>'; 

Je veux montrer la validation des messages à vue

Ce code est complet en réponse 18/02/2011

+0

Quelle est exactement votre question? – prodigitalson

Répondre

0

Vous pouvez rendre des erreurs sur un élément spécifique:

echo $this->form->my_select->renderErrors(); 

Si vous voulez rendre les erreurs pour tout le formulaire en un seul endroit:

$form->addDecorator('FormErrors');  
echo $form->renderFormErrors(); 
+0

Vous êtes génial et une personne réelle qui me comprend. – tomdythai

+0

Si c'est la bonne réponse à votre question, s'il vous plaît cliquer sur Accepter. – Maxence

+0

Pouvez-vous m'aider s'il vous plaît. erreur "Exception non interceptée 'Zend_Form_Exception' avec le message 'Zend_Form :: isValid attend un tableau'" dans mon exemple de code (je modifie à nouveau la question de code) – tomdythai

0

Je ne suis pas vraiment sûr de ce que tu veux dire ici, mais voici mon meilleur devinez ...

Si vous voulez rendre l'ensemble des erreurs de validation pour le formulaire et ses éléments en un seul endroit, essayez d'ajouter le décorateur FormErrors au formulaire. Voir Zend_Form_Decorator_FormErrors

En ce qui concerne la validation, ajoutez simplement des validateurs aux éléments comme d'habitude.

+0

merci pour la réponse – tomdythai

0

d'avoir des erreurs de validation vous devez d'abord ajouter validateurs à votre élément de formulaire,

$formElement = new Zend_Form_Element_Text('username'); 
     $formElement->addValidator(new Zend_Validate_Alnum()); 

pour obtenir des messages d'erreur de validation ne

$arrayOfErrors = $this->view->form->getMessages(); 
+0

merci pour la réponse – tomdythai