Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASP Clásico (http://www.forosdelweb.com/f15/)
-   -   Mandar resultados de formulario segun..... (http://www.forosdelweb.com/f15/mandar-resultados-formulario-segun-318017/)

alfredo3000 19/07/2005 12:33

Mandar resultados de formulario segun.....
 
Hola amigos..mi tema es que tengo un formulario de evaluacion em un sitio web...algo asi como una encuentas a los visitantes.

en el tengo varias preguntas y segun la respuesta que me dan lo encuestados es que le doy un puntaje por ejempo.

Buena= 50
sufficiente =40
Mala = 10

y luego los resultados me llegan a un Mail determinado...hasta ahi todo bien y funciona.
el tema es que me gustaria hacer que cuando la persona elija la opcion "MALA" del formulario...me llegara este resultado con el puntaje y todo pero a otro e-mail distinto al que uso para el resto de los resultados.

Alguien me puede acosenjar en como hacerlo...pues no he ayado la forma de direccionar a e-mails disntitos dependiendo de la opciones que el visitante utilice.

de ante mano gracias
Alfredo

Saruman 19/07/2005 12:46

ok. puedes hacerlo de la siguiente manera:

cuando haces el request del form y de los checks o radio (como lo estes utilizando) entonces validas o preguntas si la opción q presionó el usuario es la mala y luego la cuentas normalment a diferencia que le mandas un mail utilizando la misma funcion que tienes para mandar las otras opciones de la encuesta... noc si me explico....

diagamos que:

Código:

total_buenas = 10
total_malas = 5
 
function EnviaMail(email,tema,remitente)
Set objNewMail = Server.CreateObject("CDO.Message")
objNewMail.From = remitente
objNewMail.To = email
objNewMail.Subject = tema
end function

y la opcion que selecciono el usuario fue la mala... ya de salida tienes que sumarle una al total de malas.

Código:

total_malas = total_malas + 1
 


if opcion = "mala" then

email = [email protected]

remitente = request.form("remitente")

call EnviaMail(email,"las respuestas malas",remitente)
end if
 
email = [email protected]
 
remitente = request.form("remitente")
call EnviaMail(email,"todas las respuestas",remitente)

pd. estoy omitiendo pasos ok? pero el punto es este.

alfredo3000 19/07/2005 12:57

desde ya gracias Saruman...mira este el el codigo que tengo para mandar el mail con una funcion CDo

Dim MailStatus
'función que envía mail
function EnviaMail()

Dim objNewMail
Dim remitente
'if ( Request.form("email") = "" or Request.form("nombre") = "" or Request.form("comentario")= "") then
'Response.Redirect("ups.html")
'end if
' Crear Instancia Cdonts
' ESTE NO FUNCIONA EN 2003 Set objNewMail = Server.CreateObject("CDONTS.NewMail")
Set objNewMail = Server.CreateObject("CDO.Message")
remitente = Request.form("requiredemail")
objNewMail.From = remitente
objNewMail.To = "[email protected]"
objNewMail.Subject = "tema"
' Generar el cuerpo de correo

ahi tengo el mail fijo donde me llegan los resultados...pero coo puedo tener otra opcion para que cumpla con lo que deseo...es decir..que cuando pincha la opcion "mala"...el resultado se vaya a otro mail ??

saludos y gracias de antemano.

Saruman 19/07/2005 13:05

bueno, te modifique la funcion... pero a esta función le faltan muchos parametros mas... ta incompleta :borracho:

bueno, entonces mira arriba, lo edite y puse esta función allí

Saruman 19/07/2005 13:11

Código:

sub SendEmail(de, para, asunto, mensaje)
 Set MyCDONTSMail2 = CreateObject("CDONTS.NewMail")
        MyCDONTSMail2.From = de
        MyCDONTSMail2.To = para
        MyCDONTSMail2.Subject = asunto
        MyCDONTSMail2.BodyFormat = 0
        MyCDONTSMail2.MailFormat = 0
        MyCDONTSMail2.Body = mensaje
        MyCDONTSMail2.Send
        set MyCDONTSMail2 = nothing
end sub

mira, esta función funciona perfectamente.

alfredo3000 20/07/2005 12:22

Gracias Saruman...
lo voy a probar y te comento....
:arriba:

alfredo3000 20/07/2005 13:27

Hola de nuevo..
sabes..he estado intentando incorpora esa nueva funcion que me envias..
pero no se en donde debo discriminar para que el envio a mail se haga segun la respuesta...es decir.

hoy dia me funciona bien siguien el esquema de que me envie todos los resultados del formulario al mismo mail.
pero como lo debo hacer para decirle a mi funcion que si la opcion del formulario es "mala "..este envio me lo haga a otro mail distinto.

me explico ??
o si gustas te puedo enviar todo el codigo.
:arriba:

saludos
Alfredo

Saruman 20/07/2005 13:29

manda el codigo pues....
postealo aqui mismo... o en un mensaje privado.. como gustes

alfredo3000 20/07/2005 14:25

estes es mi codigo:

<HTML>
<HEAD>
<TITLE>Insertar.asp</TITLE>
</HEAD>
<BODY>
<%
'Recogemos los valores del formulario
nombre=Request.Form("requirednombre")
telefono= Request.Form("requiredtelefono")
acompanante= Request.Form("requiredacompanante")
institucion= Request.Form("requiredinstitucion")
direccion= Request.Form("requireddireccion")
ciudad= Request.Form("requiredciudad")
pais= Request.Form("requiredpais")
email= Request.Form("requiredemail")
distribuidores= Request.Form("distribuidores")
fax= Request.Form("fax")
h_a= Request.Form("h_a")
h_b= Request.Form("h_b")
h_c= Request.Form("h_c")


'Instanciamos y abrimos nuestro objeto conexion
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("base.mdb")
sSQL="Insert Into Clientes (nombre,telefono,acompanante,institucion,email,dir eccion,ciudad,pais,fax,h_a,h_b,h_c,) values ('" & nombre & "','" & telefono & "','" & acompanante & "','" & institucion & "','" & email & "','" & direccion & "','" & ciudad & "','" & pais & "','" & fax & "','" & h_a & "','" & h_b & "','" & h_c & "',)"

'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
%>
<%
'Cerramos el sistema de conexion
Conn.Close
%>
<%
Dim MailStatus
'función que envía mail
function EnviaMail()

Dim objNewMail
Dim remitente
' Crear Instancia Cdonts
Set objNewMail = Server.CreateObject("CDO.Message")
remitente = Request.form("requiredemail")
objNewMail.From = remitente
objNewMail.To = "[email protected]"
objNewMail.Subject = "tema"
' Generar el cuerpo de correo
Dim Body
Body = "A continuación información enviada desde formulario de contacto:" + vbcrlf + vbcrlf
Body = Body + "Nombre completo: " + Request.form("requirednombre") + vbcrlf
Body = Body + "Acompañante: " + Request.form("requiredacompanante") + vbcrlf
Body = Body + "Institución: " + Request.form("requiredinstitucion") + vbcrlf
Body = Body + "Dirección: " + Request.form("requireddireccion") + vbcrlf
Body = Body + "Ciudad: " + Request.form("requiredciudad") + vbcrlf
Body = Body + "E-mail: " + Request.form("requiredemail") + vbcrlf
Body = Body + "País: " + Request.form("requiredpais") + vbcrlf
Body = Body + "Fono: " + Request.form("requiredtelefono") + vbcrlf
Body = Body + "Fax: " + Request.form("fax") + vbcrlf + vbcrlf
Body = Body + "h_a: " + Request.form("h_a") + vbcrlf + vbcrlf
Body = Body + "h_b: " + Request.form("h_b") + vbcrlf + vbcrlf
Body = Body + "h_c: " + Request.form("h_c") + vbcrlf + vbcrlf


objNewMail.TextBody = Body
objNewMail.Send
' Creamos aviso que llega al usuario:
Set objNewMail2 = Server.CreateObject("CDO.Message")
objNewMail2.From = "[email protected]"
objNewMail2.To = Request.form("requiredemail")
objNewMail2.Subject = "asunto"
' Generar el cuerpo de correo

objNewMail2.TextBody = Body2
objNewMail2.Send
Response.Redirect("c_fichagracias.htm")
end function
'ejecutamos la funcion
EnviaMail()
%>


en la primera parte recojo los valores del formulario...luego los meto en la Bases de datos...y finalmente genero el cuerpo el mail que me llega con los resultados....todo esto funciona muy bien...

entonces.. en la opcions "h_a" , "h_b" , "h_c" es donde quiero hacer los que necesito...cada una de estas opciones tiene tres alternativas (values)..."bueno", "regular" , "malo" y yo recojo esos valores..entonces..quiero que cuando la persona elija en cualquiera de ellas el valor "malo"..me llegue un mail..pero a una direccion de correo distinta de la que tengo en la funcion CDO. ([email protected])...

eso es en sintesis...
espero haber sido claro o de lo contrario me preguntas cualquier duda.
desde ya..muchas gracias

Alfredo

Saruman 20/07/2005 14:43

dale así para ver:

<HTML>
<HEAD>
<TITLE>Insertar.asp</TITLE>
</HEAD>
<BODY>
<%
'Recogemos los valores del formulario
nombre=Request.Form("requirednombre")
telefono= Request.Form("requiredtelefono")
acompanante= Request.Form("requiredacompanante")
institucion= Request.Form("requiredinstitucion")
direccion= Request.Form("requireddireccion")
ciudad= Request.Form("requiredciudad")
pais= Request.Form("requiredpais")
email= Request.Form("requiredemail")
distribuidores= Request.Form("distribuidores")
fax= Request.Form("fax")
h_a= Request.Form("h_a")
h_b= Request.Form("h_b")
h_c= Request.Form("h_c")

'Instanciamos y abrimos nuestro objeto conexion
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("base.mdb")
sSQL="Insert Into Clientes (nombre,telefono,acompanante,institucion,email,dir eccion,ciudad,pais,fax,h_a,h_b,h_c,) values ('" & nombre & "','" & telefono & "','" & acompanante & "','" & institucion & "','" & email & "','" & direccion & "','" & ciudad & "','" & pais & "','" & fax & "','" & h_a & "','" & h_b & "','" & h_c & "',)"
'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
%>
<%
'Cerramos el sistema de conexion
Conn.Close
%>
<%
email_para_malas = "emailmala[arroba]gmail.com"
email_others = "emailothers[arroba]gmail.com"

Body = "A continuación información enviada desde formulario de contacto:" + vbcrlf + vbcrlf
Body = Body + "Nombre completo: " + Request.form("requirednombre") + vbcrlf
Body = Body + "Acompañante: " + Request.form("requiredacompanante") + vbcrlf
Body = Body + "Institución: " + Request.form("requiredinstitucion") + vbcrlf
Body = Body + "Dirección: " + Request.form("requireddireccion") + vbcrlf
Body = Body + "Ciudad: " + Request.form("requiredciudad") + vbcrlf
Body = Body + "E-mail: " + Request.form("requiredemail") + vbcrlf
Body = Body + "País: " + Request.form("requiredpais") + vbcrlf
Body = Body + "Fono: " + Request.form("requiredtelefono") + vbcrlf
Body = Body + "Fax: " + Request.form("fax") + vbcrlf + vbcrlf
Body = Body + "h_a: " + Request.form("h_a") + vbcrlf + vbcrlf
Body = Body + "h_b: " + Request.form("h_b") + vbcrlf + vbcrlf
Body = Body + "h_c: " + Request.form("h_c") + vbcrlf + vbcrlf

if h_c = "malo" then
call SendEmail(email, email_para_malas, "los malos", Body)
else
call SendEmail(email, email_others, "los otros", Body)
end if


sub SendEmail(de, para, asunto, mensaje)
Set MyCDONTSMail2 = CreateObject("CDONTS.NewMail")
MyCDONTSMail2.From = de
MyCDONTSMail2.To = para
MyCDONTSMail2.Subject = asunto
MyCDONTSMail2.BodyFormat = 0
MyCDONTSMail2.MailFormat = 0
MyCDONTSMail2.Body = mensaje
MyCDONTSMail2.Send
set MyCDONTSMail2 = nothing
end sub
Response.Redirect("c_fichagracias.htm")
%>
</body>
</HTML>
</HEAD>


pd. Man. esos h_a, h_b y h_c son radios o checkboxes??
si son radios y tu solo quieres que el usuario o cliente escoja solo una opción (asumo que la tienes así) entonces ponle a los radio un solo nombre.

asi:

Código HTML:

<input name="radiobutton" type="voto" value="bueno"> bueno
        <input name="radiobutton" type="voto" value="regular">regular
        <input name="radiobutton" type="voto" value="malo"> malo

luego en el asp lo recoges asi:

voto = request.form("voto")
ya ya... te viene el bueno o el regular o el malo....

de otro modo, si son los checkboxes entonces dejalo asi.... pero no tiene sentido.... :pensando:

alfredo3000 25/07/2005 13:39

Hola Saruman..gracias por todos tus consejos..
pero no logro que esto funcione..

no se como integrar ese codigo con lo que yo tengo

Saruman 25/07/2005 13:44

Cita:

Iniciado por alfredo3000
Hola Saruman..gracias por todos tus consejos..
pero no logro que esto funcione..

no se como integrar ese codigo con lo que yo tengo

:-( todavia??

alfredo3000 05/08/2005 12:08

Hola Saruman...he estado trabajando con lo que me mandaste...pero ahora me surgio el siguiente problema cuando ejecuto la pagina...

El componente ActiveX no puede crear el objeto: 'CDONTS.Newmail'

como puedo solucionar eso ??


saludos

Saruman 05/08/2005 12:22

y tienes el cdonts.dll en tu maquina y registrado??

alfredo3000 05/08/2005 12:56

Si primero averigue por que no funcinana..pero estab bien instalada lalibreria y bien registrada.

no habra otra funcion de envio de mail que me pueda servir para estos efectos ??

saludos.

El_Metallick 05/08/2005 13:06

En las FQS postie una lista de componentes para el envio de emails con sus respectivas formas de us-... date una vueltita por esos lados... saludos

Saruman 05/08/2005 13:19

Cita:

Iniciado por El_Metallick
En las FQS postie una lista de componentes para el envio de emails con sus respectivas formas de us-... date una vueltita por esos lados... saludos

sip, muy buena por cierto :arriba:

alfredo3000 05/08/2005 13:26

Gracias...voy a revisar..

salut.


La zona horaria es GMT -6. Ahora son las 14:27.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.