Foros del Web » Programando para Internet » ASP Clásico »

formulario en asp

Estas en el tema de formulario en asp en el foro de ASP Clásico en Foros del Web. muy buenas a todos. mi pregunta es bien sencilla. Que necesito para hacer funcionar un formulario en .asp. En .htm si funciona, pero con la ...
  #1 (permalink)  
Antiguo 29/05/2006, 11:12
 
Fecha de Ingreso: mayo-2005
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
formulario en asp

muy buenas a todos. mi pregunta es bien sencilla.

Que necesito para hacer funcionar un formulario en .asp.

En .htm si funciona, pero con la extensión .asp no hay manera y me es necesario hacerlo asi porque tengo que coger un campo de una base de datos.

Alguien sabe como hacerlo???.

Mil gracias, compañeros y perdonad mi ignorancia.

Un saludo.
  #2 (permalink)  
Antiguo 29/05/2006, 11:43
Avatar de VaIvan  
Fecha de Ingreso: octubre-2005
Ubicación: Mexico
Mensajes: 138
Antigüedad: 19 años, 5 meses
Puntos: 2
Mas o menos asi:

1.-construir una pagina en HTML con un formulario y que en el ACTION
se diriga a la pagina ASP
1.-CONSTRUIR UNA PAGINA VACIA EN ASP QUE SE LLAME inserta.asp
2.-ACTIVAR EL CODIGO ASP DONDE HAYA UN REQUEST FORM (coger los campos de un formulario e insertarlos en una base ejem. access)
3.-LIMPIAR FORMULARIO

aqui hay un ejemplo copia el codigo y pegalo en tu pagina vacia HTML Y LA OTRA EN LA DE ASP
nota: debes tener IIS o algun server que soporte ASP y sustituye mis campos por los tuyos. saludos =)
HTML

<body bgColor=lightslategray background=img\fondogris.jpg bgproperties=fixed>
<H3 align=left>
<FONT face=Tahoma color="midnightblue">FROMULARIO<br>EN (<EM>CASA MATRIZ</EM> )</FONT></H3><FONT size=3 face=Tahoma,Arial,verdana><B>
<p>
<FORM action=inserta.asp method=post>
<table bgcolor=lightsteelblue width="50%">
<tr>
<td width="16%"><STRONG><FONT size=2>Producto:</FONT></STRONG></td>
<td width="84%"><input name="MI CAMPO" size="55" ></td>
</tr>
<tr>
<td width="16%"><STRONG><FONT
size=2>Sucursal:</FONT></STRONG></td>
<td width="84%"><SELECT size=1 id=IDE_CEN_ALM name=IDE_CEN_ALM>
<OPTION selected>TBHMAT</OPTION>
<OPTION>...</OPTION>
</SELECT></td>
</tr>


ASP

<%Option Explicit%>

<%
Dim myvar
Dim myRst
Dim Alerta
Alerta = ""

Dim myConn 'CONEXION DE SQL SERVER
set myConn = server.CreateObject("ADODB.Connection")
myConn.Open "Driver={SQL Server};Server=(local);Database=MI TABLA;Uid=USUARIO;Pwd=PASWORD;"

Dim Agrega
Agrega = Request.QueryString("agrega")


If Agrega = "1" Then

Dim sqlText
sqlText=""
sqlText=sqlText & "INSERT INTO ingresa"
sqlText=sqlText & " (Nombre,Edad,Puesto)"
sqlText=sqlText & " VALUES ("
sqlText=sqlText & "'" & Request.Form("Nombre") & "',"
sqlText=sqlText & "'" & Request.Form("Edad") & "',"
sqlText=sqlText & "'" & Request.Form("Puesto") & "'"
sqlText=sqlText & ")"
myConn.Execute sqlText

Alerta = "onload=""alert('Registro agregado satisfactoriamente')"""
End If


%>

<HTML>
<LINK href="..\main.css" rel="stylesheet" type="text/css">
<HEAD>
<STYLE TYPE="text/css">
<!--
a:link {text-decoration: none}
a:visited {text-decoration: none}
a:active {text-decoration: none}
-->
</STYLE>
</HEAD>
<BODY background="marmol.jpg" leftmargin=0 topmargin=0 <%=Alerta%>>
<BR>
<BR>
<B><I><Font Size=4 Face="Verdana" align=center><Center>
<font size="4" face="Arial, Helvetica, sans-serif"><b><font color="firebrick" size="3">ALTA
DE USUARIOS</font><font color="firebrick"> </font></b></font></Font></B></I>
</Center><BR>
<Center>
<FORM action="alta_ivan.asp?Agrega=1" method=post id=form1 name=form1>
<br>
<Font size=2 color=Black><B><font face="Arial, Helvetica, sans-serif" color="darkblue">Registro en Sql server</font></B></Font>
<BR>
<BR>

<Table WIDTH=50% align=center id=Table border="1" bgcolor="Gainsboro">
<TR>
<TD Bgcolor=navy> <font face="Arial, Helvetica, sans-serif"><b><Font Size=2 Color=white>
Nombre: </font> </b></font></TD>
<TD bgcolor=silver>
<INPUT Align=center size=20 type="text" id=Nombre NAME=Nombre>
</TD>
</TR>
<TR>
<TD Bgcolor=navy> <font face="Arial, Helvetica, sans-serif"><b><Font Size=2 Color=white>
Edad: </font> </b></font></TD>
<TD bgcolor=silver>
<INPUT Align=center type="text" size=10 id=Edad NAME=Edad>
</TD>
</TR>
<TR>
<TD Bgcolor=navy> <font face="Arial, Helvetica, sans-serif"><b><Font Size=2 Color=white>
Puesto: </font> </b></font></TD>
<TD bgcolor=silver>
<INPUT Align=center size=20 type="text" id=Puesto name=Puesto>
<Center>
</tr>
<tr>
<td Align=center>
<INPUT type="submit" value="Guardar" id=submit name=submit>
</td>
</center>

</FORM>
<Center>
<td Align=center>
<INPUT type="button" value="Cerrar" id="button1" name="button1" align=middle onclick="JavaScript:window.close()">
</td></tr>
</center>
</BODY>
</HTML>
  #3 (permalink)  
Antiguo 29/05/2006, 11:53
 
Fecha de Ingreso: mayo-2005
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
muchas gracias VaIvan, y sobre todo por tu rapidez. pero para nada es lo que busco. Igual me he explicado mal. asi que intentaré explicarme de nuevo.

Tengo una aplicacion en asp para productos y estoy tratando de hacer una ficha de contacto (formulario) y que coja directamente la referencia del producto de la bd.

Hasta aqui soy capaz de hacerlo.

Bueno, pues pretendo crear un formulario con los campos:

Referencia: (campo cogido de la bd)
Nombre: (Campo introducido por el usuario)
Email: (campo introducido por el usuario)
...

y hacerlo llegar a mi correo.

No sé si he liado aún más la cosa...jejee

Un saludo y gracias.
  #4 (permalink)  
Antiguo 29/05/2006, 12:23
Avatar de VaIvan  
Fecha de Ingreso: octubre-2005
Ubicación: Mexico
Mensajes: 138
Antigüedad: 19 años, 5 meses
Puntos: 2
aaah

Creo que lo que requieres es traer a un formulario un campo insertado en una BD si es eso yo lo hago asi:

aqui convierto los datos en una variable...

Dim sqltxt
Dim cnombre
Dim cfecha
Dim rs

cfecha= Request.Form("Fechas")
cnombre = Request.Form ("Clave")

<%

set rs=createobject("ADODB.Recordset")
sqltxt="select * from mensajes Where Persona like '%"&cnombre&"%'And Fecha like '%"&cfecha&"%' ORDER BY Fecha"

rs.open sqltxt,myConn %>

<%if rs.eof then%>

aqui lo pongo en el campo del formulario que despues sera enviado a un mail por cdonts.

<INPUT type="text" id="Nombre" name="Nombre" value="<%=cnombre%>">
</form>

En el select esta cogiendo lo que esta en la base de datos like es que sea igual ò parecido al codigo que quieres.

ojala esto te sirva.
  #5 (permalink)  
Antiguo 29/05/2006, 12:43
 
Fecha de Ingreso: mayo-2005
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
gracias por tu interes VaIvan.

eso es precisamente lo que soy capaz de hacer. lo que no consigo es mandar los datos del formulario a una cuenta de correo.

es decir el envio de un formulario en asp.

muchas gracias de nuevo
  #6 (permalink)  
Antiguo 29/05/2006, 13:17
Avatar de VaIvan  
Fecha de Ingreso: octubre-2005
Ubicación: Mexico
Mensajes: 138
Antigüedad: 19 años, 5 meses
Puntos: 2
envia mail con cdonts

cdonts es un objeto que por alguna razon extraña
windows xp no tiene, y es necesario un dll.
que tienes que pegar en el system de tu maquina
antes de enviar formulario por mail.

aqui esta el tutorial completo:
http://www.programacion.com/asp/articulo/cdonts/

consigue este cdonts.dll
despues de pegar la dll
aqui
ESTE ES EL CODIGO PARA ENVIAR A UN EMAIL.
<%
Dim objMail 'Declaramos variable
Set objMail = Server.CreateObject("CDONTS.NewMail") 'Abrimos el componente

objMail.From = request.form("email") 'Quién envía el correo
objMail.Subject = "Formulario desde Internet" 'Tema del mensaje
objMail.To = "[email protected]" 'A quién enviamos el mensaje
objMail.Body = "Nombre:"&request.form("nombre")&Chr(13)&"Puesto:" &request.form("puesto")&Chr(13)&"Empresa:"&request .form("empresa")&Chr(13)&"Estado:"&request.form("e stado")&Chr(13)&"Comentarios:"&request.form("comen tarios") ' Contenido del mensaje
objMail.Send 'Enviamos el mensaje
set objMail = nothing 'Cerramos el componente
%>
  #7 (permalink)  
Antiguo 29/05/2006, 13:23
 
Fecha de Ingreso: mayo-2005
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
gracias VaIvan, le echaré un vistazo con calMa. además mi servidor ya tiene instalado ese componente.

Muchas gracias por toda la información.

Un saludo. GRACIAS.
  #8 (permalink)  
Antiguo 30/05/2006, 12:50
 
Fecha de Ingreso: mayo-2005
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
al final lo he hecho funcionar con el cdont. gracias por todo.

solo que me ocurre un detalle. que en pantalla si aparece bien pero luego al correo no llega. este es mi .asp


<%

'Creación de variables para almacenar los campos del formulario
Referencia= Request.Form("referencia")
Nombre= Request.Form("nombre")
Email= Request.Form("email")
Telefono= Request.Form("telefono")
Comentario= Request.Form("comentario")

strBody = "<html><body>"
strBody = strBody & "<b>Formulario de Contacto:</b>"& "<br><br>"
strBody = strBody & "<b>Referencia: </b>"& Referencia &"<br>"
strBody = strBody & "<b>Nombre: </b>"& Nombre &"<br>"
strBody = strBody & "<b>Email: </b><a href='mailto:"& Email &"'>"& Email &"</a><br>"
strBody = strBody & "<b>Telefono: </b>"& Telefono &"<br>"
strBody = strBody & "<b>Comentario: </b>"& Comentario &"<br>"
strBody = strBody & "</body></html>"

Set mailobj = Server.CreateObject("CDONTS.NewMail")
mailobj.mailFormat = 0
mailobj.bodyFormat = 0
mailobj.from = "Contacto"
mailobj.to = "[email protected]"
mailobj.subject = "Formulario de contacto"
mailobj.send
response.write strBody
'Response.redirect("index.asp")
%>


la línea que me falla es esta:

strBody = strBody & "<b>Email: </b><a href='mailto:"& Email &"'>"& Email &"</a><br>"

ya que visualizando el resultando en pantalla con el response.write strBody me visualiza el enlace del email pero luego recibo el correo sin nada en su contenido.

Sabes o sabe alguien a que puede ser debido esto.

Muchas gracias por todo.
  #9 (permalink)  
Antiguo 30/05/2006, 13:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
ya está

ya está arreglado. era que sin querer había borrado una línea de codigo. entonces no mandaba el cuerpo del mensaje.

mailobj.body = strBody
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:56.