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

Dos botones de envio en un formulario

Estas en el tema de Dos botones de envio en un formulario en el foro de ASP Clásico en Foros del Web. Saludos: Tengo un mismo formulario de datos con dos botones: El boton de "solicitar información" debe recoger los datos del formulario y pasarlos a la ...
  #1 (permalink)  
Antiguo 20/05/2005, 10:30
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Dos botones de envio en un formulario

Saludos:
Tengo un mismo formulario de datos con dos botones:
El boton de "solicitar información" debe recoger los datos del formulario y pasarlos a la página "solicitud.asp" y el boton de "recomendar a un amigo" debe pasar los datos del formulario a la página "recomendar.asp".
El asunto es que no consigo que segun el boton que se pulse me envie a la pagina correspondiente.

Los botones se llaman los dos: "boton" son de tipo="submit".

Como podría hacerlo???
Gracias
  #2 (permalink)  
Antiguo 20/05/2005, 10:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Hazlo con javascript

Código:
function enviaforma(accion)
{
  if(accion == "formulario1")
  {
    document.tuforma.action = "asp1.asp"
  }
  else
  {
    document.tuforma.action = "asp2.asp"
  }
  document.tuforma.submit();
}

<form action="" name="tuforma" method="post">
<input type="button" value="asp1" onclick="enviaforma('formulario1');">
<input type="button" value="asp2" onclick="enviaforma('formulario2');">
</form>
Algo asi.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 20/05/2005, 10:37
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Saludos U_goldman:

Hay forma de hacerlo en ASP, porque de Javascript no tengo ni idea. Gracias
  #4 (permalink)  
Antiguo 20/05/2005, 10:41
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Ok, entonces deberias hacer una pagina intermedia, ponerles sendos atributos name a los botones, y enviar este formulario a esa pagina, en dicha pagina, evaluaras de acuerdo al name de ese boton mediante un request, y puedes volver a crear la forma o mandar todos los campos mediante un redirect a la pagina correspondiente.

Es lo que se me ocurre, pero se me hace que se complica mucho solo por no querer utilizar javascript, el codigo esta ahi, solo tienes que hacerle uno o dos cambios.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 20/05/2005, 11:37
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Saludos de nuevo:

Ya he retocado el script para que me funcione pero ahora necesito pasar parametros a las paginas donde hago los enlaces de forma que me quedasen asi:

document.tuforma.action = asp1.asp?referenciaoferta=<%=referenciaoferta%>&de stinooferta=<%=rs("destinooferta")%>&denominaciono ferta=<%=server.URLEncode(denominacionoferta)%>&fe chavalidezoferta=<%=rs("fechavalidezoferta")"
¿Cómo puede hacerse?
  #6 (permalink)  
Antiguo 20/05/2005, 11:43
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Pero que no vas a mandar esos parametros mediante la forma??
utiliza los campos de la forma

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 20/05/2005, 11:53
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Pasale como argumentos a la función de Javascript los respectivos valores de las variables que pasas por la URL. Si mal no recuerdo, te quedaría algo así:

function enviaforma(accion, arg1, arg2, arg3, arg4)

if (accion == "formulario1"){

document.tuforma.action = "asp1.asp?referenciaoferta="+arg1+"&destinooferta= "+arg2+"&=denominacionoferta="+arg3+"&=fechavalide zoferta="+arg4"
}

Y luego llamarias a la funcion de la misma forma que te dijo U Goldman, pero te quedaría de esta forma:

enviarforma('formulario1','<%=referenciaoferta%>', '<%=rs("destinooferta")%>','<%=server.UrlEncode(de nominacionoferta)%>','<%=rs("fechavalidezoferta")% >')

Otra cosa es que si a ambas acciones del formulario le pasas una URL con tantos parametros, te convendría hacer dos funciones distintas en javascript para hcer el código menos engorroso y más entendible. Una ejecutaría un action del formulario, y otra que ejecute el otro action del form.
Espero que te sirva, saludos.
  #8 (permalink)  
Antiguo 20/05/2005, 11:54
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Tiene toda la razón U Goldman, por que enviarlos por la URL?, envialos por POST y te evitas hacer este código tan improlijo.
  #9 (permalink)  
Antiguo 20/05/2005, 11:55
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
No

Esta funcion js lo que hace solamente es cambiar el action de la forma y enviarla, para que quieren pasarle parametros, si los parametros son los campos de la forma???

Por post o por get, no importa!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 20/05/2005, 11:55
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
No entiendo lo que me dices U_goldman:

Si quiero pasar parametros en asp por un form hago así:

Código:
<form action="asp1.asp?referenciaoferta=<%=referenciaoferta%>&destinooferta=<%=rs("destinooferta")%>&denominacionoferta=<%=server.URLEncode(denominacionoferta)%>&fechavalidezoferta=<%=rs("fechavalidezoferta")"
Ahora quiero hacer lo mismo que arriba y entiendo que tendré poner
Código:
document.tuforma.action = "asp1.asp"?referenciaoferta=<%=referenciaoferta%>&destinooferta=<%=rs("destinooferta")%>&denominacionoferta=<%=server.URLEncode(denominacionoferta)%>&fechavalidezoferta=<%=rs("fechavalidezoferta")"
en el script, pero me da un error.
porque ahora form action está vacio
  #11 (permalink)  
Antiguo 20/05/2005, 12:04
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
La verdad que no entiendo... osea la funcion de javascript lo que hace es cambiar el action no?, bueno, entonces, al especificarle el nuevo action en js, si le tendrás que pasar esos parametros, porque en la función le estas indicando unicamente "asp1.asp", no le estás indicando ningún parametro. Por lo tanto, si deseas pasarle los parametros por la URL, tal como tienes en el form de HTML, tendrás que hacer algo similar a la función que puse antes. Ahora lo que no me cierra es porque pasarle todos esos parametros por la URL, si lo puedes enviar por POST.
La verdad es que me perdí completamente. SAludos.
  #12 (permalink)  
Antiguo 20/05/2005, 12:35
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
A ver o soy tonto o soy burro.

Les envio el código de las dos páginas a ver si me dicen donde está el error porque o yo no me aclaro o tengo una empanada mental de aquí y no te menees:
En la pagina reservas.asp recupero algunos datos de la pagina anterior, pero ahora no me los recupera:
Estoy pasando los valores por get

verofertasminoristas.asp
<html>
<head>
<title>Informaci&oacute;n sobre la oferta</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function enviaforma(accion)
{
if(accion == "formulario1")
{
document.form1.action = "../reservas.asp"
}
else
{
document.form1.action = "../enviar_amigo/form_enviar_amigo.asp"
}
document.form1.submit();
}
</script>

<link href="../hojaestilo.css" rel="stylesheet" type="text/css">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<!--Incluimos el fichero de constantes-->
<!--#INCLUDE file="../adovbs.asp"-->
<%
Set Conn= Server.CreateObject("ADODB.Connection")
Set Command= Server.CreateObject("ADODB.Command")
Conn.open "DSN=clubviajesoferta.com.turofertas"
Command.ActiveConnection=Conn
Command.CommandType=adCmdText
Command.CommandText= "SELECT * FROM ofertasmayoristas WHERE referenciaoferta = '" & Request("referenciaoferta") & "'"
Set RS=Command.Execute ()
referenciaoferta=request("referenciaoferta")
denominacionoferta=rs("denominacionoferta")
%>
<form action="" method="get" name="form1" target="_blank" id="form1">
<table width="100%" cellpadding="0">
<tr>
<td colspan="3" align="left" valign="top"></td>
</tr>
<tr>
<td colspan="2" align="left" valign="top" bgcolor="#FFFFDC">
<input name="boton" type="submit" class="BOTON_SOLICITUD" id="boton" value="Solicitar información" onclick="enviaforma('formulario1');">
</td>
<td align="left" valign="top" bgcolor="#FFFFDC"><input name="boton" type="submit" class="BOTON_RECOMENDAR_AMIGO" id="boton" value="Recomendar a un amigo" onclick="enviaforma('formulario2');"></td>
</tr>
<tr>
<td width="13%" align="left" valign="top"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Referencia: </font></td>
<td width="87%" colspan="2" align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif"><%=rs("referenciaoferta")%></font></td>
</tr>
<tr>
<td align="left" valign="top"><p><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Destino:</font></p>
</td>
<td colspan="2" align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif"><%=rs("destinooferta")%></font></td>
</tr>
<tr>
<td align="left" valign="top"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Denominaci&oacute;n:</font></td>
<td colspan="2" align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif"><%=rs("denominacionoferta")%></font></td>
</tr>
<tr>
<td align="left" valign="top"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">V&aacute;lidez:</font></td>
<td colspan="2" align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif"><%=rs("fechavalidezoferta")%></font></td>
</tr>
<tr>
<td colspan="3" align="left" valign="top" bgcolor="#FFFFDC"><div align="center"></div></td>
</tr>
<tr>
<td colspan="3" align="left" valign="top"> <div align="left">
<p align="center"><img src="<%=RS("imagenoferta")%>" width="<%=RS("imagenofertaancho")%>" height="<%=RS("imagenofertaalto")%>" align="top"></div>
<div align="left"></div></td>
</tr>
</table>
</form>
</body>
<%
rs.close
conn.close%>
</html>
[/CODE]

Reservas.asp
Aquí es donde tengo que recoger los valores de la pagina anterior.
<html>
<head>
<title>Formulario de solicitud de información</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="hojaestilo.css" rel="stylesheet" type="text/css">
</head>
<!--Incluimos el fichero de constantes-->
<!--#INCLUDE file="adovbs.asp"-->
<%
referenciaoferta=request.Querystring("referenciaof erta")
response.write "referenciaoferta vale: " & referenciaoferta
destinooferta=request.QueryString("destinooferta")
denominacionoferta=request.QueryString("denominaci onoferta")
fechavalidezoferta=request.QueryString("fechavalid ezoferta")
Set Conn= Server.CreateObject("ADODB.Connection")
Set Command= Server.CreateObject("ADODB.Command")
Conn.open "DSN=clubviajesoferta.com.turofertas"
Command.ActiveConnection=Conn
Command.CommandType=adCmdText
Command.CommandText= "SELECT * FROM ofertasmayoristas WHERE referenciaoferta = '" & Request("referenciaoferta") & "'"
Set RS=Command.Execute ()
%>
<body>
<p></font></p>
<form action="reservas_result.htm" method="POST" name="" id="">
<table border="0" width="100%">
<tr>
<td height="21" colspan="4"><font face="Times New Roman, Times, serif">Para recibir información sobre esta oferta rellena el formulario y pulsa</font>
<input class="BOTONES_FORMULARIO" type="submit" value="Enviar"></td>
</tr>
<tr>
<td height="21" colspan="4"><font face="Arial, Helvetica, sans-serif"><strong><font color="#003366" size="2" face="Verdana, Arial, Helvetica, sans-serif">Datos de la Oferta</font></strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif"></strong></font></font></font></td>
</tr>
<tr>
<td class="CELDA" height="21">Referencia<br>
<input name="destinos" type="text" class="CAJASDETEXTO" id="destinos" value="<%=referenciaoferta%>" size="10" maxlength="10"></td>
<td class="CELDA" height="21">Destino<br>
<input name="destinos" type="text" class="CAJASDETEXTO" id="destinos" value="<%=destinooferta%>" size="30" maxlength="30"></td>
<td class="CELDA" height="21"><p>V&aacute;lidez<br>
<input name="destinos" type="text" class="CAJASDETEXTO" id="destinos" value="<%=fechavalidezoferta%>" size="10" maxlength="10"></td>
<td height="21"></td>
</tr>
<tr>
<td class="CELDA" height="21" colspan="4">Denominaci&oacute;n<br>
<input name="destinos" type="text" class="CAJASDETEXTO" id="destinos" value="<%=denominacionoferta%>" size="80" maxlength="80"></td>
</tr>
<tr>
<td height="21" colspan="4"><strong><font color="#003366" size="2" face="Verdana, Arial, Helvetica, sans-serif">Datos del Peticionario</font></strong></td>
</tr>
<tr>
<td class="CELDA" height="45" width="144">Nombre<br>
<input name="nombre" type="text" class="CAJASDETEXTO" id="nombre" size="24" maxlength="28"> </td>
<td class="CELDA" height="45" width="180">Apellidos<br>
<input name="apellidos" type="text" class="CAJASDETEXTO" id="apellidos" size="24" maxlength="28"></td>
<td class="CELDA" height="45" width="150">Teléfono<br>
<input name="telefono" type="text" class="CAJASDETEXTO" id="telefono" size="9" maxlength="9"></td>
<td class="CELDA" width="169">Fax<br>
<input name="fax" type="text" class="CAJASDETEXTO" id="fax" size="9" maxlength="9"></td>
</tr>
<tr>
<td class="CELDA" height="46" width="144">E-mail<br>
<input name="email" type="text" class="CAJASDETEXTO" id="email" size="24"></td>
<td class="CELDA" height="46" width="180">Dirección<br>
<input name="direccion" type="text" class="CAJASDETEXTO" id="direccion" size="28" maxlength="28">
</font></td>
<td class="CELDA" height="46" width="150">Localidad<br>
<input name="localidad" type="text" class="CAJASDETEXTO" id="localidad" size="25" maxlength="28"></td>
<td class="CELDA" width="169">Código Postal<br>
<input name="codpostal" type="text" class="CAJASDETEXTO" id="codpostal" size="5" maxlength="5"></td>
</tr>
<tr>
<td height="23" colspan="4"><font color="#003366" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Cuando deseas viajar</strong></font></td>
</tr>
<tr>
<td class="CELDA" height="46" width="144">Fecha de petición<br>
<input name="fepeticion" type="text" class="CAJASDETEXTO" id="fepeticion" value="<%=date%>" size="8" maxlength="8"></td>
<td class="CELDA" height="46" width="180">Fecha del viaje<br>
<input name="feviaje" type="text" class="CAJASDETEXTO" id="feviaje" size="8" maxlength="8"></td>
<td class="CELDA" height="46" width="150">Duración del viaje (días)<br>
<input name="duracion" type="text" class="CAJASDETEXTO" id="duracion" size="3" maxlength="3"></td>
<td class="CELDA" >Número de plazas<br>
Adultos
<input name="plazasadultos" type="text" class="CAJASDETEXTO" id="plazasadultos" size="3" maxlength="3">
Niños
<input name="plazasninos" type="text" class="CAJASDETEXTO" id="plazasninos" size="3" maxlength="3"></td>
</tr>
<tr>
<td class="CELDA" height="47" width="144">Tipo de alojamiento<br>
<input name="tialojamiento" type="text" class="CAJASDETEXTO" id="tialojamiento" size="24"></td>
<td class="CELDA" height="47" width="180">Régimen<br>
<input name="regi" type="text" class="CAJASDETEXTO" id="regi" size="24"></td>
<td class="CELDA" height="47" width="150">Categoría Hotel/Apto<br>
<input name="categor" type="text" class="CAJASDETEXTO" id="categor" size="20"></td>
<td class="CELDA" >Tipo de transporte<br>
<input name="titransporte" type="text" class="CAJASDETEXTO" id="titransporte" size="24"></td>
</tr>
<tr valign="top">
<td class="CELDA" height="28" colspan="3">Observaciones<br>
<input name="observaciones" type="text" class="CAJASDETEXTO" id="observaciones" size="54"></td>
<td class="CELDA" width="169" height="28" valign="bottom"></td>
</tr>
</table>
</form>
</body>
</html>
[/CODE]
Gracias
  #13 (permalink)  
Antiguo 20/05/2005, 13:23
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
No recuperas los datos en la otra página porque... no le estás pasando ningún dato!! jejeej. Fuera de broma ahora, te lo explico mejor. Debes especificar campos de texto para pasar a través de ellos los valores, ya sea por el método GET o el POST, según tu prefieras. Tal cual hiciste con el segundo Form. Y recién ahora entiendo que es lo que quería decir U Goldman en su post anterior, la verdad que no lo había captado, había entendido algo totalmente distinto a lo que el se refería. Obviamente, tenía razón en lo que dijo.
Fijate si con eso anda.

Para U Goldman: lo que yo había entendido es que el mandaba por POST los valores del form, pero que además tenía que mandar anexada a la URL otras variables. Osea pense que tenia que hacer esto:

<form method="POST" action="una_pagina.asp?una_variable=un_valor">


Saludos.

Última edición por mariano_donati; 20/05/2005 a las 13:28
  #14 (permalink)  
Antiguo 20/05/2005, 13:46
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Salud!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 21:38.