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…)

Escribe un Comentario

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

*
*