2011-02-17 51 views
0

如何验证Zend表单? (开始标记)如何验证Zend表单打开标记:Zend表单

实施例:

形式:

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'))), 
    )); 
      } } 

控制器:

$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; 

检视:

// 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>'; 

我想在视图来显示信息验证

此代码是在回答18/02/2011

+0

你的问题到底是什么? – prodigitalson 2011-02-17 03:28:55

回答

0

您可以用特定的元素渲染错误:

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

如果要在一个位置呈现所有表单的错误:

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

你是伟大的,一个真正理解我的人。 – tomdythai 2011-02-17 08:42:37

0

完整的我真的不知道你的意思在这里,但这里是我最好的猜...

如果要为表单及其元素在一个位置呈现验证错误集,请尝试将FormErrors修饰符添加到表单中。请参阅Zend_Form_Decorator_FormErrors

至于验证,只需将验证器添加到元素即可。

+0

谢谢你的回答 – tomdythai 2011-02-17 08:44:22

0

有你验证错误首先需要验证添加到您的表单元素,

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

得到验证错误信息做

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

谢谢你的回答 – tomdythai 2011-02-17 08:43:10