« Junio 2005 | Main | Agosto 2005 »

Julio 2005 Archives

Julio 13, 2005

Solución a los FORMs anidados en HTML

Hace algún tiempo, me vi en la tarea de realizar un sistema de "carrito de compras" típico.

Dentro del desarrollo, me topé con el siguiente problema:
Quería introducir un listado mediante campos <OPTION> y <SELECT>, los cuales estaban dentro de un <FORM> y asi actualizar el contenido de la pagina con un onchange(); de cualquiera de las opciones...

El problema se da, que cuando uno quiere enviar esa información del formulario, para ser procesada, lo lógico a pensar, es que uno haga otro form encima de ese y que tenga un action distinto... Lo cual nos lleva a descubrir algo que no está muy bien documentado en Internet:

Los FORMs anidados en HTML no son validos y por lo tanto no funcionarán!

Una vez que esto le queda a uno claro y deja de jugar a ponerle nombres distintosa los forms e inventar y re-inventar nombres, es que uno se da cuenta que tienes 3 soluciones (al menos estas encontré yo):

  • Replantear el problema: Si llegaste al punto en que necesitas tener 2 FORMs anidados, significa que tu modelo está malo.. Asi de simple. Está malo y tienes que re-plantearlo desde 0... Quizás debería o pasar por un FORM primero y luego por otro. O tal vez todo deba estar en un solo FORM
  • Ocupar un ticket de verificación: Se puede agregar un nuevo campo hidden o un check-button, que permita realizar otras acciones al procesar los datos. Esta solución es a mí parecer la más sencilla.
  • Manejar variables de sesion: Esta forma, requiere un poco más de conocimiento del lenguaje utilizado para procesar el FORM (Ya sea PHP, o algún otro bellaco, como ASP)... Se trata que al momento de actualizar la página, ver si se hicieron cambios en las variables anteriores (guardadas en una sesión) y compararlas con las nuevas. Luego, al momento de hacer el click en el botón SUBMIT, se debe introducir una variable hidden que referencie que no se hagan más cambios y se procesen los datos.

Eso... ojalá le sirva a alguien, pq a mí me costó entenderlo en su momento.


Escuchando: "I got the power" de Puff Daddy & The Lox

Julio 18, 2005

6to Encuentro Linux

6to Encuentro Linux

About Julio 2005

This page contains all entries posted to MAVE's blog in Julio 2005. They are listed from oldest to newest.

Junio 2005 is the previous archive.

Agosto 2005 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.35