Olá, hoje falarei de um assunto simples e fácil de implementar em um formulário html e com Zend_Form, apesar de não parecer a primeira vista também é bem simples com o Zend_Form.
Sem nenhum rodeio ou enrolação descreverei como utilizar o Fieldset.
<?php class Application_Form_Cadastro extends Zend_Form { public function __construct($options = null) { parent::__construct ($options); //campo nome $nome = new Zend_Form_Element_Text('nome'); $nome->setLabel('Nome: '); //campo sobrenome $sobrenome = new Zend_Form_Element_Text('sobrenome'); $sobrenome->setLabel('Sobrenome: '); //campo telefone $telefone = new Zend_Form_Element_Text('telefone'); $telefone->setLabel('Telefone: '); //campo sobrenome $email = new Zend_Form_Element_Text('email'); $email->setLabel('E-mail: '); //adiciona elementos ao formulario $this->addElements(array($nome, $sobrenome, $telefone, $email)); //cria grupo no formulario (fieldset) e sua legenda (legend) $this->addDisplayGroup(array('nome','sobrenome'), 'dadosPessoais', array('legend'=>'Dados Pessoais:')); //caso queira pode tambem inserir decorators //$dPessoal = $this->getDisplayGroup('dadosPessoais'); //$dPessoal->setDecorators(array com as especificacoes do decorator do fieldset); //cria grupo no formulario (fieldset) e sua legenda (legend) $this->addDisplayGroup(array('telefone','email'), 'dadosContato', array('legend'=>'Contatos:')); } } ?>
Pronto está ai, simples e fácil!
Olá sou novo em programação como eu colocaria decoraters:
no código /cria grupo no formulario (fieldset) e sua legenda (legend)
$this->addDisplayGroup(array(‘nome’,’sobrenome’), ‘dadosPessoais’, array(‘legend’=>’Dados Pessoais:’));
//caso queira pode tambem inserir decorators
//$dPessoal = $this->getDisplayGroup(‘dadosPessoais’);
//$dPessoal->setDecorators(array com as especificacoes do dec)
preciso colocar os campos inputs e labels dentro duma div ou a tag p?
Não sei se foi isso que quiz dizer, mas entendi que você quer colocar decorators em um campo de input. Da classe input que você instanciou pode chamar o método “setDecorators” e passar um array com os decorators que lhe interessar. Por exemplo:
//campo nome
$nome = new Zend_Form_Element_Text(‘nome’);
$nome->setLabel(‘Nome: ‘)
$nome->setDecorators(array(
‘ViewHelper’,
‘Errors’,
array(array(‘data’ => ‘HtmlTag’), array(‘tag’ => ‘td’, ‘class’ => ‘element’)),
array(‘Label’, array(‘tag’ => ‘td’)),
array(array(‘row’ => ‘HtmlTag’), array(‘tag’ => ‘tr’)),
));
Espero ter ajudado, se não for isso que entendi detalhe melhor sua pergunta que responder melhor.
Ok. Obrigado…
Olá acho que vai ajudar em parte, mas o que de fato preciso é seguinte: Agrupei alguns campos do zend_form_element num fieldset. Preciso que todos estes campos (3) inputs e suas labels sejam colocadas dentro de uma tag p, dentro do fildset. ou seja
campo1
campo2
campo3
</fieldset
Olá acho que vai ajudar em parte, mas o que de fato preciso é seguinte: Agrupei alguns campos do zend_form_element num fieldset. Preciso que todos estes campos (3) inputs e suas labels sejam colocadas dentro de uma tag p, dentro do fildset, ou seja,
campo1
campo2
campo3
Olá consegui resolver. Obrigado..