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