Todo sobre Formularios desde ASP
Autor Mauro Rondinelli
 

El envio y la recepcion de formularios por medio de ASP es bastante facil pero tiene varios metodos de implementacion en este articulo veremos las formas, a las que llamaremos escenarios, de enviar y recibir datos de un formulario.

Metodos GET y POST

Los metodos son las formas en las que se puede enviar los datos de un formulario. Tengamos en cuenta que los datos de un formulario tiene que ir a parar a alguna pagina que los procese entonces aqui es donde intervienen los metodos de envio, por un lado el metodo GET envia el formulario como una direccion URL, algo asi como esto...

http://www.servidor.com/procesa.asp?nombre=jose&apellido=gomes

Y el metodo POST envia los datos ocultos dentro de la cabezera HTML algo asi como un archivo adjunto o como un agregado a la peticion HTTP, bueno medio complicado de explicar pero la principal diferencia es que el metodo POST no envia los datos en la URL, entonces quedaria asi la direccion...

http://www.servidor.com/procesa.asp

Bueno, ahora la pregunta del millon ¿Que metodo es mejor?, yo les recomiendo el metodo POST ya que este es mejor para los formularios grandes que envien mas de 1000 Bytes es decir 1000 caracteres, otra cosa que nos ahoramos es la posible manipulacion de los datos por parte del usuario, pero esa es mi forma de pensar, pueden probar los dos y comparar ustedes.

Escenario 1 - Utilizando GET, Enviando desde un HTML a un ASP

En este primer caso utilizaremos dos archivos uno llamado 'formulario.htm' que contiene el formulario y el otro 'procesa.asp' que recibe los datos enviados.

---- formulario.htm ----
<form name="FORMULARIO" method="get" action="procesa.asp">
<p> Nombre
<input type="text" name="NOMBRE">
</p>
<p> Apellido
<input type="text" name="APELLIDO">
</p>
<p>
<input type="submit" name="BTN_ENVIAR" value="Enviar">
</p>
</form>

Prestemos atencion a la primer linea, noten que el atributo 'method' toma el valor 'get' lo cual hace que el formulario se envie como una dirreccion URL, el atributo 'action' especifica donde se enviaran los datos, es decir, el archivo que recibira los datos del formulario en este caso 'procesa.asp', bueno las lineas que siguen a la primera agregan dos campos de texto 'NOMBRE' , 'APELLIDO' y un boton del tipo 'submit' que hace que el formulario se envie.

Ahora veremos el archivo ASP que recibe los datos del formulario...

---- procesa.asp ----
<%
Response.Write "Nombre: "
Response.Write
Request.QueryString("Nombre")
Response.Write "<br>"
Response.Write "Apellido: "
Response.Write Request.QueryString("Apellido")
%>

Expliquemos un poco, tenemos a el famoso 'Response.Write' que escribe en el navegador los datos pasados como parametro y la funcion 'Request.QueryString(cadena)' , esta funcion tiene un parametro que es el nombre del campo al cual se quiere acceder, si queremos ver el valor del campo nombre seria algo asi...

<%
Response.Write
Request.QueryString("Nombre")
%>

Escenario 2- Utilizando POST, Enviando desde un HTML a un ASP

Veamos ahora el otro metodo 'POST' primero escribiremos el archivo 'formulario.htm' que contiene el formulario...

---- formulario.htm ----
<form name="FORMULARIO" method="post" action="procesa.asp">
<p> Nombre
<input type="text" name="NOMBRE">
</p>
<p> Apellido
<input type="text" name="APELLIDO">
</p>
<p>
<input type="submit" name="BTN_ENVIAR" value="Enviar">
</p>
</form>

Lo unico que cambia con respecto al formulario anterior es el metodo de envio en este caso 'post', ya que el resto del archivo es igual pasaremos a explicar el archivo 'procesa.asp' que recive los datos del formulario pasados con el metodo POST.

---- procesa.asp ----
<%
Response.Write "Nombre: "
Response.Write
Request.Form("Nombre")
Response.Write "<br>"
Response.Write "Apellido: "
Response.Write Request.Form("Apellido")
%>

Dado que pasamos los datos con el metodo 'POST' no los podemos recuperar con 'QueryString' entoces utilizamos la coleccion 'Form' seguida del nombre del campo y asi obtendremos el valor del mismo.

Escenario 3- Utilizando POST y Autoenvio del formulario.

Ahora seguiremos utilizando el metodo 'POST' pero en ves de enviar el formulario a otro archivo lo enviaremos al mismo archivo que contiene el formulario, con esto nos ahoramos tener que armar dos archivos, el del formulario y el que lo procesa. Veamos todo el codigo de este escenario y luego lo explicaremos.

---- formulario.asp ----
<%
If Request.Form <> "" Then
   Response.Write "Nombre: "
   Response.Write
Request.Form("Nombre")
   Response.Write "<br>"
   Response.Write "Apellido: "
   Response.Write Request.Form("Apellido")
else
%>
<form name="FORMULARIO" method="post" action="formulario.asp">
<p> Nombre
<input type="text" name="NOMBRE">
</p>
<p> Apellido
<input type="text" name="APELLIDO">
</p>
<p>
<input type="submit" name="BTN_ENVIAR" value="Enviar">
</p>
</form>
<%
End If
%>

Bueno este archivo se divide en dos partes una que procesa el formulario y la otra que lo 'dibuja', estas partes estan separadas por un bloque IF que evalua si se envio el formulario, si esto es verdadero lo prosesa y sino lo 'dibuja'...

If Request.Form <> "" Then

Aqui es donde se produce el bloque IF, si el formulario es distinto a "" (nada) significa que se envio el formulario entonces muestra sus datos. Noten que el atributo 'action' hace referencia al mismo archivo. Esta forma de implementar el uso de formularios es muy comoda y agiliza el trabajo con los mismos. Saludos a todos

 
WWW.ELGURUPROGRAMADOR.COM.AR