13.04.2008_Marcar checkbox en Zend_Form_Element_MultiCheckbox _,

Llevo unos días impregnándome de la Zend Framework. Para practicar lo que aprendo, reviso el cms perpetuo que cada vez es más “profesional” (o eso me parece =). Esta tarde los multicheckbox me han retado a un pulso y casi vencen (por los pelos los mando a tomar por saco).

Trabajar con Zend es en general bastante sencillo, una vez sabes cómo (Santi creo que es un tanto escéptico con el tiempo invertido y el resultado obtenido =). En los últimos días intento aprender el funcionamiento de Zend_Form (la documentación no está del todo bien y se encuentran pocos tutoriales en la red). La cosa parecía casi dominada hasta que han aparecido los checkbox múltiples.

Crearlos es bastante sencillo:

$groups =  new Zend_Form_Element_MultiCheckbox('groups');

    foreach($groups as $group){
       $groups -> addMultiOption($group -> id, $group -> name);
    }
    $form -> addElement($groups);

Y ya tenemos un listado de checkbox, con sus label y todo =) Lo complicado viene cuando lo que quieres es marcar alguno por defecto (o si quieres preparar un formulario de modificación y necesitas arrastrar las casillas marcadas en la BBDD). Zend_Form_Element_MultiCheckbox, a diferencia de Zend_Form_Element_Checkbox, ¡¡¡no ofrece la posibilidad de marcar un checkbox!!!

Después de buscar y preguntar he empezado a seguir la estructura de llamadas y clases hasta encontrar con la solución:

  $form -> groups -> setValue($checkedGroups);

Donde $checkedGroups es un array con los ids que queremos marcar. Así de fácil y tonto, pero cuando no se sabe la respuesta, es lo que pasa. El nombre del método no ayudaba demasiado (en singular cuando se pasa un array y ¿¿setValue para indicar los marcados en lugar de los valores???) y el hecho de que se trate de la 6 o 7 clase de la jerarquía por encima de Zend_Form_Element_MultiCheckbox tampoco… =P

Nota: Vista la falta de documentación estoy pensando en preparar algo… a ver si tengo tiempo =/

Entradas relacionadas:

Comentarios

  1. oberkom (17/04/2008 12:59)

    Exceptico no… aunque sigue siendo más rápido crear gestores con mi cms :P :P :P

    Ahora.. Zend es más elegante… y más exigente con el motor que lo mueve… pedir PHP5 con los ISP españoles es un poco utopía y si el cliente te viene que tiene su web en arsys pues ya puedes empezar a picar otro cms. (el mío ni en arsys se salva…)

  2. Martín Arbol (08/01/2009 18:38)

    Que grande xavier!!! Es verdad, es una pavada pero si no lo sabes… Buena ayuda. Saludos

Escribe un Comentario

Tu correo nunca será publicado ni compartido. Los campos requeridos están marcados *

*
*