Formulario con Checkbox

Ricardo Mun~oz A. rmunoz en pjud.cl
Mar Jul 10 09:36:40 CLT 2007


Luis Vega wrote:
> Hola amigos, les comento mi problema, que de seguro a mas de alguien
> le h pasado.
>
> Tengo tres tablas en mysql:
>
> usuario(idusuario, nombre, login, pass),
> grupo (idgrupo, nombre),
> usuario_grupo (idusuario, idgrupo)

[...]

> Lo anterior todo ok, el problema esta cuando quiero editar los datos
> del usuario, y con ello modificar los datos del o los grupos al que
> pertenece. La idea es que cuando edite un usuario me muestre los datos
> de la tabla usuario y ademas me muestre a los grupos que pertenece, la
> idea es que si encuentro que pertenece a un cierto grupo, se muestre
> el checkbox en checked, y cuando no pertecece a un grupo, me muetre el
> checkbox sin checked.

lo que describes no es un "problema" dentro del contexto de esta lista, 
sino un "requerimiento"... ;)

en todo caso, si para resolver tu "problema" usas PHP puro es muy 
probable que te demores bastante en resolverlo. si usas algun framework 
(CakePHP, Symfony, etc.) tu "problema" es trivial ya que basta con 
definir correctamente los Modelos, que en este caso serian (en CakePHP):

Usuario hasAndBelongsToMany Grupo
Grupo hasAndBelongsToMany Usuario

y luego al generar (automagicamente) el codigo de las operaciones CRUD, 
en el caso del CakePHP, en la correspondiente Vista de Usuarios 
apareceria una "lista de seleccion multiple"[1] donde se puede elegir 
mas de un grupo haciendo click en su nombre presionando al mismo tiempo 
la tecla CTRL... ojo que la relacion tambien se da al reves; si estas en 
la Vista de Grupos podrias modificar sus Usuarios.

la ventaja del framework es que te ahorras el tiempo armando los SQL y 
HTML, y tu "problema" pasa a ser totalmente trivial...

[1] una "lista de seleccion multiple" tiene mas sentido que varios 
checkbox ya que si por ejemplo tienes 100 opciones los 100 checkbox 
ocuparian demasiado espacio en la pagina...

-- 
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)


Más información sobre la lista de distribución PHP