McAnam » Foros » Foro ASP
ejecutar asp desde boton mostrar datos



  Emilio        03/11/2011 23:23:54
Estimados amigos, perdonen mi "ignorancia".

Necesito hacer algo que en teoria debe ser sencillo, pero me rompo la cabeza, y no logro hacerlo.

Necesito mostrar en una pagina html, (o asp) un código al pulsar un boton.

el código es el siguiente, lo tengo en una pagina asp, pero se carga de forma automatica al ejecutar la pagina, y yo lo que necesito hacer es, en esa misma pagina (incluir un boton y ejecutar el codigo solo cuando se pulse el boton) o mostrar los resultados en una html, pero al pulsar un boton... no se si me explico, llevo dias con este tema, y ya estoy mareado... agradezco cualquier ayuda que puedan darme. gracias, y muchas gracias de antemano.

<HTML>
    <HEAD><TITLE>Leyendo una base de datos de Access con ASP</TITLE></HEAD>
    <BODY>

<TABLE BORDER="2">
<TD><B>Nombre    <B></TD>
<TD><B>Email     <B></TD>
<TD><B>Url       <B></TD>

<%
Dim conexion, registros, basedatos
' El primer paso consiste en declarar algunas variables que nos serán de utilidad.

' De estas tres variables, utilizaremos la primera para nuestra conexión a la base de datos, la segunda para seleccionar los registros y la tercera  para ingresar la dirección donde se encuentra nuestra base de datos.

basedatos = Server.MapPath("/db/ejemplo.mdb")

' En la asignación anterior, la instrucción Server.Mappath nos da el Path completo en el servidor hacia el archivo ejemplo.mdb que se encuentra en el mismo directorio que el ejemplo.

' También se puede utilizar el path completo para definir esta variable que quedaría algo así:

' basedatos = "c:\Inetpub\wwwroot\ejemplo.mdb"

Set conexion = Server.CreateObject("ADODB.Connection")

' Declaramos nuestra conexión a bases de datos.

conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"

' Abrimos la conexión a través del OLE Driver., indicandole la dirección de la base de datos por medio de la variable que declaramos algunas líneas antes.

' Así como utilizamos el OLE Driver, también pudimos utilizar una conexión por medio del ODBC y un DNS declarado en el sistema, aunque este Driver es el más rápido y recomendado para utilizar.

Set registros = conexion.Execute("SELECT * FROM Ejemplo ORDER BY Ejemplo.Nombre")

' A continuación, declaramos en registro los datos que estaremos seleccionando en la base de datos.

' Por medio de lenguaje SQL Seleccionamos todos los campos de la tabla Ejemplo, ordenándolos por el campo Nombre.

Do While Not registros.EOF

' Para empezar a mostrar los registros, utilizamos un CICLO que se repetirá mientras no lleguemos al final de los registros encontrados.

' Luego de esto, iremos tomando los valores de la base de datos e imprimiéndolos dentro del HTML.

%>

<TR>
<TD><%= registros.Fields("Nombre").Value %>&nbsp;</TD>
<TD><A HREF="mailto:<%= registros.Fields("Email").Value %>"><%=registros.Fields("Email").Value %></A>&nbsp;</TD>
<TD><A HREF="<%= registros.Fields("URL").Value %>"><%= registros.Fields("URL").Value %></A>&nbsp;</TD>
</TR>

<%
registros.MoveNext

Loop

' Cada vez que se ejecuta el ciclo, le pedimos por medio de .MoveNext que pase al siguiente registro encontrado

' La instrucción Loop es la que indica hasta donde debe de repetirse el ciclo.

registros.Close

Set registros = Nothing

conexion.Close

Set conexion = Nothing

' Algo muy importante que debemos recordar es cerrar nuestras conexiones, para no dejar la base de datos abierta.

' Para esto, primero la cerramos por medio de .Close y a continuación es recomendable declararles valores de "nada", para dejar las variables limpias.

%>




</TABLE>
      </BODY>
      </HTML>



  McAnam        20/11/2011 19:48:39
Buenas,

Una forma podría ser, que el botón envie un formulario, con su propio valor y recubrir el código dentro de un if que evalue si el form, ha sido enviado, algo así:

<% if request.form("envio") then %>
  Tu código ....
<% else %>
  <form method="post">
    <input type="submit" name="envio" value="Ver datos de BD">
  </form>
<% end if %>


En tu código, quedaría como:

<HTML>
<HEAD><TITLE>Leyendo una base de datos de Access con ASP</TITLE></HEAD>
<BODY>

<% if request.form("envio") then %>

<TABLE BORDER="2">
<TD><B>Nombre <B></TD>
<TD><B>Email <B></TD>
<TD><B>Url <B></TD>

<%
Dim conexion, registros, basedatos
' El primer paso consiste en declarar algunas variables que nos serán de utilidad.

' De estas tres variables, utilizaremos la primera para nuestra conexión a la base de datos, la segunda para seleccionar los registros y la tercera para ingresar la dirección donde se encuentra nuestra base de datos.

basedatos = Server.MapPath("/db/ejemplo.mdb")

' En la asignación anterior, la instrucción Server.Mappath nos da el Path completo en el servidor hacia el archivo ejemplo.mdb que se encuentra en el mismo directorio que el ejemplo.

' También se puede utilizar el path completo para definir esta variable que quedaría algo así:

' basedatos = "c:\Inetpub\wwwroot\ejemplo.mdb"

Set conexion = Server.CreateObject("ADODB.Connection")

' Declaramos nuestra conexión a bases de datos.

conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos & ";"

' Abrimos la conexión a través del OLE Driver., indicandole la dirección de la base de datos por medio de la variable que declaramos algunas líneas antes.

' Así como utilizamos el OLE Driver, también pudimos utilizar una conexión por medio del ODBC y un DNS declarado en el sistema, aunque este Driver es el más rápido y recomendado para utilizar.

Set registros = conexion.Execute("SELECT * FROM Ejemplo ORDER BY Ejemplo.Nombre")

' A continuación, declaramos en registro los datos que estaremos seleccionando en la base de datos.

' Por medio de lenguaje SQL Seleccionamos todos los campos de la tabla Ejemplo, ordenándolos por el campo Nombre.

Do While Not registros.EOF

' Para empezar a mostrar los registros, utilizamos un CICLO que se repetirá mientras no lleguemos al final de los registros encontrados.

' Luego de esto, iremos tomando los valores de la base de datos e imprimiéndolos dentro del HTML.

%>

<TR>
<TD><%= registros.Fields("Nombre").Value %>&nbsp;</TD>
<TD><A HREF="mailto:<%= registros.Fields("Email").Value %>"><%=registros.Fields("Email").Value %></A>&nbsp;</TD>
<TD><A HREF="<%= registros.Fields("URL").Value %>"><%= registros.Fields("URL").Value %></A>&nbsp;</TD>
</TR>

<%
registros.MoveNext

Loop

' Cada vez que se ejecuta el ciclo, le pedimos por medio de .MoveNext que pase al siguiente registro encontrado

' La instrucción Loop es la que indica hasta donde debe de repetirse el ciclo.

registros.Close

Set registros = Nothing

conexion.Close

Set conexion = Nothing

' Algo muy importante que debemos recordar es cerrar nuestras conexiones, para no dejar la base de datos abierta.

' Para esto, primero la cerramos por medio de .Close y a continuación es recomendable declararles valores de "nada", para dejar las variables limpias.

%>

</TABLE>

<% else %>
  <form method="post">
    <input type="submit" name="envio" value="Ver datos de BD">
  </form>
<% end if %>

</BODY>
</HTML>


Volver al foro ASP