Ejemplo sencillo de uso de ASP

Hacemos un stop para realizar un sencillo ejemplo en ASP que trata el envío de formularios y el uso de bucles.
Vamos a ver un sencillo ejemplo realizado en ASP que sirva para ilustrar el trabajo desarrollado hasta el momento en el manual de la tecnología. Este ejemplo es muy básico, aunque experimenta con varias de las utilidades vistas hasta ahora, como el trabajo con bucles y los objetos request y response, que sirven para recibir datos e imprimirlos en la página.

El ejemplo en concreto se trata de un generador de tablas de multiplicar. En principio, cuando se accede al archivo, se muestra la tabla del cero y un formulario donde podemos seleccionar otro número y ver su tabla de multiplicar. Al enviar el formulario se accede a la misma página, aunque ahora aparecería la tabla de multiplicar del número seleccionado en el formulario.

Formulario para seleccionar un número

Veamos ahora el formulario que muestra un campo de selección con los números del 1 al 10. Este formulario servirá para que el visitante pueda seleccionar la tabla que desea ver.

<form name=tb action=tb.asp method=post>
<P align=center>Seleccione una opción
<SELECT align=center name=tab style="WIDTH: 40px">
    <OPTION selected>1</OPTION>
    <OPTION >2</OPTION>
    <OPTION >3</OPTION>
    <OPTION >4</OPTION>
    <OPTION >5</OPTION>
    <OPTION >6</OPTION>
    <OPTION >7</OPTION>
    <OPTION >8</OPTION>
    <OPTION >9</OPTION>
    <OPTION >10</OPTION>
</SELECT>
<br>
<INPUT type=submit value="Ver tabla" >
</P>
</form>


Hay que fijarse que la página que va a recibir el formulario se llama tb.asp, según se indica en el atributo action. El único campo del formulario que se envía es llamado "tab", y guarda el número que se haya seleccionado.

Código para mostrar la tabla de multiplicar correspondiente

Empezamos recibiendo el dato del formulario que nos indica la tabla que el usuario quiere visualizar. En un principio no se recibe ningún dato del formulario (hasta que no se envíe el formulario no se sabe que tabla se desea ver y por tanto, habíamos dicho que se iba a mostrar la tabla del cero). Así pues, si no recibo nada, inicializo a cero la variable i, que guarda el número de la tabla de multiplicar a mostrar. En caso de que sí se reciba algo del formulario, se inicializa la variable i al valor recibido en el campo "tab".

'si no se está recibiendo datos del formulario
if request.form("tab")="" then
    'inicializo la tabla a mostrar a cero
    i=0
else
    'inicializo la tabla a mostrar al dato recibido en el formulario
    i=Request.Form ("tab")
end if


Ahora veremos un bucle que muestra la tabla de multiplicar del valor recibido por formulario. Este bucle hace una repetición desde 1 al 10 y se van realizando las multiplicaciones y mostrando los resultados.

'muestro la tabla del número que recibo del formulario
Response.Write "Tabla del " & i%><br><br><%
'realizo un bucle del 1 al 10 para mostrar la tabla correspondiente
for a=1 to 10
    Response.Write i &" x " & a & " = " & i*a%>
    <br>
    <%
next
%>


Código completo

El código completo del ejemplo se puede ver a continuación. Espero que sirva de ayuda para las personas que empiezan a dar sus primeros pasos con ASP.

<%@ Language=VBScript %>
<HTML>
<HEAD><title>Tablas de Multiplicar....</title>
</HEAD>
<BODY bgColor=skyblue>

<div align="center">

<form name=tb action=tb.asp method=post>
<P align=center>Seleccione una opción
<SELECT align=center name=tab style="WIDTH: 40px">
    <OPTION selected>1</OPTION>
    <OPTION >2</OPTION>
    <OPTION >3</OPTION>
    <OPTION >4</OPTION>
    <OPTION >5</OPTION>
    <OPTION >6</OPTION>
    <OPTION >7</OPTION>
    <OPTION >8</OPTION>
    <OPTION >9</OPTION>
    <OPTION >10</OPTION>
</SELECT>
<br>
<INPUT type=submit value="Ver tabla" name=submit1 >
</P>
</form>
<%

'si no se está recibiendo datos del formulario
if request.form("tab")="" then
    'inicializo la tabla a mostrar a cero
    i=0
else
    'inicializo la tabla a mostrar al dato recibido en el formulario
    i=Request.Form ("tab")
end if

'muestro la tabla del número que recibo del formulario
Response.Write "Tabla del " & i%><br><br><%
'realizo un bucle del 1 al 10 para mostrar la tabla correspondiente
for a=1 to 10
    Response.Write i &" x " & a & " = " & i*a%>
    <br>
    <%
next
%>
</div>

</BODY>
</HTML>

Compartir

Comentarios

Gustavo

11/7/2005
Muy Bueno.

Daniel

18/4/2006
Hola q tal?
una pregunta: el bucle no deberia incrementarse? algo asi i++? espero su respuesta ya q estoy en la duda...

gracias, saludos!

Daniel.A.

Daniel

18/4/2006
Hola soy yo d nuevo!

si se diera el caso q si...deberia ser a++ no?

Del Pino

21/4/2006
Lo hize algo parecido, pero no entiendo porque "next" esta fuera del bucle y cunado lo llevo adentro me da error...
Si alguien podria dar solución a mi inquietud, desde ya Gracias!


<%@ Language=VBScript %>
<HTML>
<HEAD>
<title>Tablas de Multiplicar...</title>
</HEAD>
<BODY bgColor=skyblue>

<div align="center">

<form name=tabla action="" method=post>
<P align=center>
<FONT face=Verdana size=1>Ingrese Número a multiplicar</FONT>
<br>
<INPUT name=tab size=5 maxlength=5 >
<br>
<INPUT type=submit value="Resultados" name=boton >
</P>
</form>
<%

'si no se está recibiendo datos del formulario
if request.form("tab")="" then
'inicializo la tabla a mostrar a cero
i=0
else
'inicializo la tabla a mostrar al dato recibido en el formulario
i=Request.Form ("tab")
end if

'muestro la tabla del número que recibo del formulario
Response.Write "Tabla del " & i%>
<br>
<br>
<%
'realizo un bucle del 1 al 10 para mostrar la tabla correspondiente
for a=1 to 12
Response.Write i &" x " & a & " = " & i*a%>
<br>
<%
next
%>
</div>

</BODY>
</HTML>

Jose

20/6/2006
Hola,
tiene un pequeño error, creo, bueno, no error, sino que en este caso no funcionaria si la pagina en la que crean el ejemplo no se llama tb.asp. En la definicion del formulario, en action le asignana la pagina tb.asp, entonces, cuando den a ver tabla, es decir, al submit, intentara ver la pagina tb.asp, que no existe, a no ser que llamen asi a su pagina de ejemplo.
Cambiando el nombre de la pagina del ejercico a tb.asp, o borrando el action=tb.asp funciona bien.
Otra cosa, el next del bucle for está bien, se introduce un <br>, que es una etiqueta html, que no puede estar dentro del codigo, por eso se cierra el codigo, se escribe el br, se abre, se cierra el for, y se vuelve a cerrar.

Emiliano

14/3/2008
Del Pino, no sé si te respondieron o no... pero probé tu código y no da error... Lo probé con el next dentro del bucle y funciona también.

Yo tengo una consulta: quiero que el bucle se genere en una tabla: que la cuenta esté en una celda, el signo "=" en otra celda y el resultado en una tercer celda... cómo hago? Porque usé la tabla como me parecía, pero sólo me encerraba el primer cálculo, el resto no.

Saludos!

Emiliano

14/3/2008
hola de nuevo... lo autoresolvé =P

'muestro la tabla del número que recibo del formulario
Response.Write "Tabla del " & i%>
<br>
<br>
<table width="100">
<%
'realizo un bucle del 1 al 10 para mostrar la tabla correspondiente
for a=1 to 12
Response.Write "<tr><td>"& i &" x " & a & "</td><td> = </td><td>" & i*a & "</td></tr>"
next
%>
</table>

DANIEL... probaste lo del incremento?
SALUDOS!!!

ricardo

30/4/2009
error en el código
según he visto tal y como está planteado el codigo el campo tab siempre envia algún dato porque se el primer option esta en 1 y nunca se cumpliria la condicion para que muestre la tabla del 0.

Program

04/5/2009
Sobre el código y sus dudas
Hola a todos, quería ver si podía resolver las dudas que he ido leyendo y que creo que ya deben estar resueltas viendo el tiempo que ya han transcurrido. Primero, el "a++" del bucle for del cual se ha hablado más arriba, tengo entendido que en un bucle for siempre que no se ponga algo diferente, por defecto, se autoincrementa en 1. Y respecto a lo de next fuera del bucle, yo, personalmente, no lo veo fuera, a no ser que, un tiempo atrás si lo estuviera y lo hayan corregido ya, yo lo que veo es que hace lo que pide el bucle y una vez hecho, se le incremente en 1 y si todavía está el valor en el rango vuelve a introducirse en el bucle o si no directamente salta el código del bucle y sigue "su camino". Hasta pronto programadores!!

victor

12/11/2009
otro ejemplo
se agradece tu ejemplo para programadores que estamos cambiando a .net pero me gustaria un ejemplo de altas bajas cambio y consulta sino es mucha molestia amigo,, gracias

jose_zepeda

18/6/2012
Excelente
Excelente me quedo claro el ejemplo, soy novato en esto y me sera de mucha utilidad.
Graciasss.............