我正在尝试创建一个新的Zend_Form。我试图按照文档说明,但屏幕上没有显示任何内容。 这是我的代码:
form / numero.php:
<?php
class Front_Form_Numero extends Zend_Form
{
public function __construct()
{
// Constructeur du parent
parent::__construct();
$this->setMethod('post');
$this->setAttrib('action', '/index/numform/');
/* ################################### tel ################################### */
$tel = new Zend_Form_Element_Text('tel');
$tel ->setLabel("N° tél");
$tel ->setAttrib('class','text');
$tel ->setRequired(true);
$tel ->addFilter('StringTrim')->addDecorators(array('clearfix'=>new Zend_Form_Decorator_HtmlTag(array('tag'=>'div','class'=>'clearfix'))));
$tel ->addValidator('StringLength', false, array(0, 10));
$tel ->setAttrib('maxlength', '10');
/* ################################### submit ################################### */
$submit = new Zend_Form_Element_Submit('submit');
$submit ->setLabel("")->addDecorators(array('clearfix'=>new Zend_Form_Decorator_HtmlTag(array('tag'=>'div','class'=>'clearfix'))));
$submit ->setAttrib('class','submit btn btn-primary ico-btn-valider');
$this ->addElement($submit);
}
}
controllers / indexController.php:
public function numformAction() {
// Création du formulaire
$this->view->numform = new Front_Form_Numero();
// Si le formulaire a été posté
if($this->getRequest()->isPost())
{
// Si le formulaire est valide
if($numform->isValid($this->getRequest()->getPost()))
{
// Données postées
$numero = $numform->getValues();
if ($this->getRequest()->isPost()) {
if ($validTel->isValid($numero))
{
echo "OK";
} else {
echo "NO OK ";
}
}
}
}
echo $numform;
exit;
} 查看助手:
$bdd_NumTel = new Front_Model_DbTable_NumTel();
$this->view->numeros = $bdd_NumTel->fetchAll($bdd_NumTel->select()
->from('num_tel',
array('name','numero'))
);
return $this;
观点:
<?php
echo $this->numform;
?>
我必须收到错误信息(或者我不知道如何找到它们:D) 我有其他形式,当我打电话给$ form时它有效 谢谢大家!
答案 0 :(得分:0)
而不是覆盖Zend_Form的构造函数,你应该在init()方法中创建表单。如果你没有充分的理由这样做。
至于你的问题,你犯了一个错误。这条线
$numform = $this->view->form = new Front_Form_Numero();
应该是
$this->view->numform = new Front_Form_Numero();