ZF2 :: Múltiplos checkbox (checkbox dinâmicos)

Múltiplas etiquetas sendo mostradas utilizando o MultipleCheckbox do Zend Framework 2

Olá pessoal!

Nesse tutorial vou ensinar a como usar checkbox dinamicamente, ou seja, múltiplos checkbox. Isso é muito útil quando tempos uma lista que permite múltiplas marcações (ou escolhas) vindas do banco de dados.

No seu arquivo do Formulário (FORM) que chamaremos de Etiquetas (EtiquetasForm.php), para criarmos o campo de checkbox utilizaremos o Elemento MultiCheckbox e daremos a ele o nome de “etiquetas”. Veja no exemplo abaixo:

setUseHiddenElement ( true );
...
?>

No seu controller, que chamaremos também de Etiquetas (EtiquetasController.php), em sua action, faça algo como isso:

getEtiquetasTable ();

$etiquetas = $etiquetas->fetchAll ();

$checkEtiqueta = array ();
/* Atribue para a array $checkEtiqueta o índice do ID, e o value o * Nome da etiqueta. Assim, teremos a label do checkbox com o nome
* da etiqueta e o valor do checkbox como o id
*/
foreach ( $etiquetas as $etiqueta ) {

$checkEtiqueta [$etiqueta->id] = " " . $etiqueta->nome;

}

//Crio o objeto do formulário
$etiquetaForm = new EtiquetaForm ();

//Seto os valores para o checkbox de acordo com os valores do bd
$etiquetaForm-> ( "etiquetas" )->setValueOptions ( $checkEtiqueta );

//Envio para a view o formulário já populado
return array (

"formulario" => $etiquetaForm,

);

}
?>

Agora, na view que chamaremos de etiquetas.phtml, farei a exibição dos checkbox das etiquetas após criar o formulário.

form()->openTag($formulario);

//Criado no arquivo FORM mas não mostrado no tutorial
echo $this->formelement($formulario->get('idProduto'))

$etiquetas = $formulario->get ( 'etiquetas' );

//Crio a Helper do Checkbox para poder separar por linha
$multiCheckBoxViewHelper = new \Zend\Form\View\Helper\FormMultiCheckbox ();

//Faz a separação dos checkbox por linha
$multiCheckBoxViewHelper->setSeparator ( '
' ); echo $multiCheckBoxViewHelper->render ( $etiquetas ); //Criado no arquivo FORM mas não mostrado no tutorial echo $this->formelement($formulario->get('submit')); echo $this->form()->closeTag($formulario); ?>

Pronto! Agora suas etiquetas nos checkbox devem estar sendo exibidas como na imagem abaixo:

Múltiplas etiquetas sendo mostradas utilizando o MultipleCheckbox do Zend Framework 2

Fontes que me auxiliaram neste tutorial

Goto Answr.com. Disponível em: http://gotoanswer.com/?q=ZF2+Form%5CElement%5CMultiCheckbox%3A+how+to+get+each+item+on+a+new+line%3F. Acesso em 30/03/2015.

Documentação Oficial do Zend Framework 2. Disponível em: http://framework.zend.com/manual/current/en/modules/zend.form.elements.html#zend-form-element-multicheckbox. Acesso em 30/03/2015.

CategoriasSem categoria

1 comentário

Deixe um comentário

O seu endereço de e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.