Foros del Web » Programando para Internet » Javascript »

¿Cómo puedo poner más de un action en un form?

Estas en el tema de ¿Cómo puedo poner más de un action en un form? en el foro de Javascript en Foros del Web. Hola a todos!! La cuestión es la siguiente: Necesito que los datos de un formulario se envíen a 2 CGI distintos. Para enviarlo a uno ...
  #1 (permalink)  
Antiguo 03/03/2004, 14:26
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Pregunta ¿Cómo puedo poner más de un action en un form?

Hola a todos!!

La cuestión es la siguiente:

Necesito que los datos de un formulario se envíen a 2 CGI distintos. Para enviarlo a uno se que es así:


<form action="http://www.dominio.com/cgi-bin/archivo.cgi" method="POST">

<input type="hidden" name="pepe" value="pepe">
<input type="text" name="xxxx" value="xxxxx">
<input type="submit" value="enviar"></form>


Lo que no se es si se puede enviar a 2 CGI's distintos ni cómo se haría.

¿Alguien puede ayudarme?

Muchas gracias por adelantado.

Salu2

Rubén
  #2 (permalink)  
Antiguo 03/03/2004, 18:34
 
Fecha de Ingreso: junio-2003
Ubicación: Buenos Aires
Mensajes: 42
Antigüedad: 21 años, 5 meses
Puntos: 0
hola rbczgz.
La verdad que no sabria como ayudarte, lo siento.

Soy un novato al que dan una buena mano los amigos que si saben de los Foros del Web
__________________
...Hay algo que dejé de hacer y aún hoy me llama...
  #3 (permalink)  
Antiguo 03/03/2004, 18:39
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Gracias por la respuesta

Muchas gracias Mhael, espero que haya alguien que sí pueda

Estamos en las mismas, yo también soy novato y también me ayudan mucho los expertos de Foros del Web.

Salu2

Rubén
  #4 (permalink)  
Antiguo 05/03/2004, 06:01
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 2 meses
Puntos: 381
Yo diría que no se puede (digo "diría" por no decir "afirmo", pero nunca se sabe si puede aparecer alguien con una solución)

  #5 (permalink)  
Antiguo 05/03/2004, 09:56
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Muchas gracias

Muchas gracias Tunait, esperemos que aparezca alguien con una solución .

De todas formas ¿podría hacerse con algun Javascript?, por aumentar las posibilidades...

Gracias por tu ayuda, aunque sea para saber que no se puede

Salu2

Rubén
  #6 (permalink)  
Antiguo 05/03/2004, 14:27
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 2 meses
Puntos: 381
No ... creo que alguna vez se probó a poner dos valores en el action pero sólo tomaba el primero. Que yo sepa no existe un equivalente a CC como en el email, para enviar a dos destinos a la vez y con javascript no se puede hacer nada, pues aunque le dijeramos que primero hiciera un submit, luego cambiara el action del form y se volviera a enviar no funcionaría, pues tras el primer submit, la página se "va" y el resto de instrucciones quedan canceladas


En todo caso tal vez puedas hacer alguna gestión desde el archivo que gestione el formulario. Tal vez por ahí puedas hacer algo
  #7 (permalink)  
Antiguo 05/03/2004, 16:52
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola a todos:

Aunque no sea posible con un formulario normal, existe la posibilidad de enviar los datos a otro target, y luego cambiar el action y reenviar...
Si el action es a un popup, luego se podría cerrar

Saludos
  #8 (permalink)  
Antiguo 05/03/2004, 17:18
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Hola Caricatos!!

Podría ser una buena idea, pero el problema es que el que se inscribe tendría que aceptar 2 veces ¿no?.

Lo que necesito es que se envíe a 2 CGI's pero sin que "se note" .

Como sabes a casi todos hay que dárselo todo lo más fácil posible y si se ve un "pelin" más complicado, se hacen un lío.

Además ¿cómo habría que hacer para que se enviara el 1º a un pop-up?

La verdad es que esto se me hace más grande de lo que yo pensaba

Muchas gracias.

Salu2

Rubén
  #9 (permalink)  
Antiguo 05/03/2004, 17:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Espero que este ejemplo te sirva:

Hay un retardo de 5 segundos entre el primer submit y el segundo, y otros 5 segundos para que se cierre la página popup.
El tiempo no tiene importancia, pero sirve para ver los resultados. También por eso usé el método get (como habrás visto, se envía a páginas html, y el método get es un buen "chivato" para ver los resultados)... En el ejemplo no existen las páginas...

<html>
<head>
<script type="text/javascript">
var ventana;
function reenviar(x) {
x = document.forms[0];
x.action = "enviar1.html";
x.submit();
setTimeout("ventana.close()", 5000);
}

function enviar(x) {
ventana = window.open("", "enviando", "");
x.submit();
setTimeout("reenviar()", 5000);
}
</script>
</head>
<body>
<form action="enviar0.html" method="get" onsubmit="enviar(this)" target="enviando" >
<input type="text" name="dato" value="prueba" />
<input type="submit" value="enviar" />
</form>
</body>
</html>

Saludos
  #10 (permalink)  
Antiguo 05/03/2004, 21:16
Avatar de cmartin81  
Fecha de Ingreso: enero-2004
Ubicación: Mexico D.F.
Mensajes: 93
Antigüedad: 20 años, 10 meses
Puntos: 0
Yo digo que se podría hacer algo asi con asp o php y que envíe 2 veces los datos del formulario a 2 CGI's distintos, recabando la información de los formularios en distintas variables.

A lo mejor en el foro de ASP o PHP te pueden ayudar.

Saludos.
__________________
_______________________________
Carlos Martin J.
  #11 (permalink)  
Antiguo 05/03/2004, 21:42
 
Fecha de Ingreso: febrero-2004
Mensajes: 73
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola:

Yo me enfrenté ya a ese problema y lo resolví así:

- El ACTION del primer formulario apunta a un archivo PHP.
- Ese archivo, además de procesar los datos (enviarlos por mail, etc.), crea un array con los datos del formulario:
Código PHP:
while(list($valor)=each($HTTP_POST_VARS)){$valores[$x]=$valor;} 
- En el mismo archivo, hago otro FORM con el ACTION hacia el segundo lugar, pero recojo las variables asi:
Código PHP:
<INPUT name="Nombre" type="text" value=<?php echo $valores[5]?>>
A este segundo formulario, le agregué un titulo que diga algo así como "Verifique que los datos sean correctos, y presione enviar"

Bueno, se que se puede mejorar, pero asi funciona bien.

Saludos,
__________________
Una sofisticada, confiable y segura solución de hosting.
Sistema de distribución redundante, respaldado diariamente.

www.uruservers.com
  #12 (permalink)  
Antiguo 05/03/2004, 22:44
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Muchas gracias, Caricatos, Cmartin81 y URUservers

Me estaba dando problemas el PC y no me abría el Explorer.

El problema es que los 2 formularios se envían a 2 CGI's y además no permiten el uso de otros lenguajes de servidor.

Se me había ocurrido si con un sólo submit se podrían enviar los dos formularios , los datos son los mismos pero uno va a una base de datos MySQL 8 (a través de un CGI) y el otro (el principal) va a una especie de base de datos de tipo texto pero que además crea un archivo .pl con los datos de cada formulario que se envía.

Es un sistema de páginas de afiliados bastante complejo (que casi he conseguido entender ) y lo que pretendo es que vaya también a un auto contestador para que se envíe un boletín semanal a todos los afiliados. Es complicarme mucho la vida pero como de algo hay que vivir...

Esto me pasa por "meterme en camisa de 11 varas"


En fin... Espero que a alguien de tantos expertos que hay por aquí (y de los buenos) se le ocurra como ayudarme, porque a mi no me da la cabeza para más (y me consideran experto, como dice el refrán: "En el país de los ciegos el tuerto es el rey", pero yo añado: "fuera no es nadie".

Bueno, ya vale de tanta divagación, que acabo aburriendo a los muertos.

Si alguien me puede ayudar lo agradeceré muchísimo.

Salu2

Rubén
  #13 (permalink)  
Antiguo 05/03/2004, 22:50
 
Fecha de Ingreso: febrero-2004
Mensajes: 73
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola:
Bueno, pero en definitiva la solucion que veo es que en el primer cgi proceses y almacenes en algun lado los datos, para luego hacer todo el resto a partir de ese cgi, y no del formulario.

Saludos,
__________________
Una sofisticada, confiable y segura solución de hosting.
Sistema de distribución redundante, respaldado diariamente.

www.uruservers.com
  #14 (permalink)  
Antiguo 05/03/2004, 23:32
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Muchas gracias URUservers!!

El problema más grave y fundamental es que soy muuuuy novato en Perl y no se como procesar y guardar los datos con uno de los 2 CGI's, pero de todas formas lo voy a intentar.

Si me pudieras decir como sería mucho más fácil

Muchas gracias

Salu2

Rubén
  #15 (permalink)  
Antiguo 06/03/2004, 06:20
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 2 meses
Puntos: 381
se me ocurre que cargues otra página oculta en un iframe oculto, tal vez un iframe de 1x1px con un duplicado del formulario que se rellene a medida que se rellena el visible.

Vamos a suponer que cargas el otro formu en un iframe de nombre pepe que es idéntico al formulario visible.

Cada campo tendrá su duplicado en el iframe y podrían tener código tal que....


<input type="text" name="perico" onblur="top.pepe.document.forms[0].perico.value = this.value" />

Y así con todos.

Finalmente en vez de usar un botón de submit le pones uno sencillo (de tipo button) y le pones un onclick="enviar()" y eso puede ser una función que diga algo como.....



<script language="javascript">
function enviar(){
top.pepe.document.forms[0].submit()
document.forms[0].submit()
}
</script>

La idea a groso modo sería esa, tal vez con algun retoque, no lo sé ....
  #16 (permalink)  
Antiguo 06/03/2004, 06:24
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 2 meses
Puntos: 381
... por cierto que yá nos hemos salido del html, traslado el tema al foro de javascript
  #17 (permalink)  
Antiguo 06/03/2004, 20:08
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Muchas gracias, tunait!!

Con esto me surge otra duda (como ya, sabes tengo muy poca idea de Js, voy aprendiendo sobre la marcha)

La cuestión es esta:

Para que no se vean los 2 forms el del iframe lo hago con los campos ocultos, hasta ahí bien. Pero la duda es, en este ejemplo

<input type="hidden" name="name" onblur="top.mailform.document.forms[0].nombre.value = this.value" />


en los 2 forms los campos se llaman de distinta forma aunque el contenido sí debe ser el mismo, entonces, lo que no entiendo es si en onblur="top.mailform.document.forms[0].nombre.value se pone el nombre del campo del 2º form o el del 1º. Además supongo que los scripts que hasta ahora se ejecutan con "onsubmit" ahora deberé añadirlos en "onClick" del botón, separados por ";" y en el orden que se deben ejecutar ¿es correcto?.

Por otra parte el iframe lo he hecho así, pero no se si está bien:

<iframe height="0" width="0">
<form name="mailform" method="post" action="http://www.dominio.com/cgi-bin/archivo.cgi">

<input type="hidden" name="name" onblur="top.auto.document.forms[0].nombre.value = this.value" />
<input type="hidden" ... = this.value" />
<input type="hidden" ... = this.value" />
<input type="hidden" ... = this.value" />
....
</form>
</iframe>


AQUI EL RESTO DE LA PAGINA Y EL OTRO FORM

</body></html>


Con toda a ayuda que me estáis prestando si al final no lo consigo, me tendré que dedicar a las labores del hogar (que por lo menos eso sí se hacerlo )

Muchas gracias de nuevo.

Salu2

Rubén

Última edición por rbczgz; 06/03/2004 a las 22:37
  #18 (permalink)  
Antiguo 05/04/2004, 15:00
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
¿Alguien me puede ayudar con esto?

Aquí el código y al final la explicación:


<html>
<head>
<script languaje="javascript">
<!-- Comienzo
function changeCase(frmObj) {
var index;
var tmpStr;
var tmpChar;
var preString;
var postString;
var strlen;
tmpStr = frmObj.value.toLowerCase();
strLen = tmpStr.length;
if (strLen > 0) {
for (index = 0; index < strLen; index++) {
if (index == 0) {
tmpChar = tmpStr.substring(0,1).toUpperCase();
postString = tmpStr.substring(1,strLen);
tmpStr = tmpChar + postString;
}
else {
tmpChar = tmpStr.substring(index, index+1);
if (tmpChar == " " && index < (strLen-1)) {
tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
preString = tmpStr.substring(0, index+1);
postString = tmpStr.substring(index+2,strLen);
tmpStr = preString + tmpChar + postString;
}
}
}
}
frmObj.value = tmpStr;
}
// Fin -->
</script>

<script language="javascript">
function enviar(){
document.forms[0].submit()
auto.document.forms[0].submit()
}
</script>
</head>
<body>

<iframe name="auto" height="0" width="0">
<form name="mailform" action="http://www.dominio.com/cgi-bin/archivo.cgi" method="POST">
<input type="hidden" name="username">
<input type="hidden" name="nombre">
<input type="hidden" name="apellidos">
<input type="hidden" name="direccion">
</form></iframe>

Rellena el formulario:

<form action="http://www.dominio.com/cgi-bin/archivo2.cgi" method="POST">
<table border=0 cellspacing=2 cellpadding=2 width=80%>
<tr>
<td nowrap align="right">Nombre de usuario:</td>
<td nowrap><input type="text" name="username" size="15" maxlenght="15" onblur="auto.document.forms.username.value = this.value"></td>
</tr><tr>
<td nowrap align="right">Nombre:</td>
<td nowrap><input type="text" name="nombre" size="21" onblur="auto.document.forms[0].nombre.value = this.value" onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr><tr>
<td nowrap align="right">Apellidos:</td>
<td nowrap><input type="text" name="apellidos" size="30" onblur="auto.document.forms[0].apellidos.value = this.value" onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr><tr>
<td nowrap align="right">Dirección:</td>
<td nowrap><input type="text" name="direccion" size="34" onblur="auto.document.forms[0].apellidos.value = this.value" onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr><tr>
</table>
<center>
<input type="button" value="¡Inscribirse ahora!" onClick="javascript:changeCase(this.form.nombre);c hangeCase(this.form.apellidos);changeCase(this.for m.direccion);enviar()">
<input type="reset" value="Limpiar Formulario">
</center>

</form>
</body>
</html>


La cuestión es que se envíe cada formulario a 2 cgi's distintos pulsando sólo un botón y el problema que me da es que al cambiar de caj de texto dice que "auto.document.forms.username" es nulo o no es un objeto. Yo tengo muy poca idea de Js pero intento seguir la idea que me posteó Tunait (muchas gracias) y no consigo que me funcione. Hasta ahora estaba en pruebas y no me corría prisa, pero ahora necesito que esté funcionando lo antes posible. Agradecería mucho cualquier ayuda. Estoy desesperado

Muchas gracias.

Salu2

Rubén
  #19 (permalink)  
Antiguo 06/04/2004, 03:59
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
¿Nadie me puede ayudar?

No encuentro en ningún sitio nada que me ayude

Si no hay nadie aquí que me pueda ayudar, ya no se que más puedo hacer.

Lo intenté con lo que proponía Caricatos (muchas gracias, también ), pero tampoco lo se hacer funcionar.

Por favor necesito que alguien me ayude!!

Muchas gracias.

Salu2

Rubén
  #20 (permalink)  
Antiguo 06/04/2004, 15:23
 
Fecha de Ingreso: abril-2004
Ubicación: en una ciudad
Mensajes: 5
Antigüedad: 20 años, 7 meses
Puntos: 0
QUIZAS TE SIRVA

yo hice esta funcion y el formulario se envio via OUTLOOKEXPRES
quizas te sirva, es simple, pero a veces la gente se complica mucho para cosas que quizas sean simples.Suerte

<head>
<script languaje="JavaScript">
function enviar()
{
window.document.formulario(nombrede tu formulario).action="mailto:[email protected],t [email protected]";
}
</script>

</head>

<body>
<form name="formulario" method=post action="">
<input type=text size=60><br>
<input type=submit value=enviar onClick="enviar()">
</body>

</html>
  #21 (permalink)  
Antiguo 06/04/2004, 16:10
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Muchas gracias, Amando

Pero lo que necesito es que se envíe a dos scripts cgi, por eso no me sirve el "mailto".

Habrá que seguir esperando a ver si alguien sabe cómo se puede hacer.
  #22 (permalink)  
Antiguo 07/04/2004, 05:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Pra enviar a iframes es más fácil de lo que puede parecer:

<html>
<head>
<script type="text/javascript">
function reenviar() {
x = document.forms[0];
x.action = "index.php";
x.submit();
}

function enviar(x) {
x.submit();
setTimeout("reenviar()", 5000);
}
</script>
</head>
<body>
<form action="index.html" method="get" onsubmit="enviar(this)" target="ifr" >
<input type="text" name="dato" value="prueba" />
<input type="submit" value="enviar" />
</form>
<iframe name="ifr" width=300 height=200></iframe>
</body>
</html>

Como podrás ver en el ejemplo es más sencillo ya que no hay que abriri ni cerrar nada... ... y lo de hacer un retardo no es más que para que haya un tiempo de procesamiento y además se noten los cambios.

Si hay algunos campos que no quieras enviar tan solo debes hacerlos disabled...

x.elCampo.disabled = true;

... y si en un action tienes que usar otro campo (con otro nombre), solo tienes que desabilitarlo al principio, luego habilitarlo, asignarle el valor del otro campo y por último deshabilitar el que no te interesa. En muchos cgi's no importa que existan campos que no interesen... simplemente no los gestionan.

Saludos
  #23 (permalink)  
Antiguo 07/04/2004, 11:11
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Casi, casi...

Hola Caricatos!!

Muchas gracias por tu respuesta

El problema es que, como ya sabrás, no tengo mucha idea de programación . Lo intento y no me funciona, se que estoy haciendo algo mal pero no se qué. lo que hace es que reenvía 2 veces el form al mismo cgi.

Si me permites que abuse un poco de tu paciencia y sabiduría, ¿me puedes explicar paso a paso dónde pongo cada cosa?.

Vamos a ver, yo tengo un sólo formulario que se tiene que enviar a 2 CGI's distintos y que además cambia el nombre de los campos, aunque el contenido debe ser el mismo.

Por ejemplo, en uno de los 2 el campo de nombre se llama nombre y en el otro se llama name, pero en los 2 debe contener la misma información, lo mismo pasa con el campo e-mail, en uno se llama
email1 y en el otro se llama email, entonces, con el script que me has pasado:

<script type="text/javascript">
function reenviar() {
x = document.forms[0];
x.action = "http://www.dominio.com/cgi-bin/script1.cgi";
x.submit();
}

function enviar(x) {
x.submit();
setTimeout("reenviar()", 5000);
}
</script>


creo que funciona pero hago algo mal y no se envía bien.

Por eso te pido si me puedes explicar paso por paso dónde va cada action y cada form.

Yo, la última prueba que casi funciona, la he hecho así (simplificando, el form tiene 25 campos ):

<html>
<head>
<script type="text/javascript">
function reenviar() {
x = document.forms[0];
x.action = "http://www.dominio.com/cgi-bin/script1.cgi";
x.submit();
}

function enviar(x) {
x.submit();
setTimeout("reenviar()", 5000);
}
</script>
</head>
<body>
<iframe name="ifr" width="300" height="300">
<form action="http://www.dominio.com/cgi-bin/script2.cgi" method="get" onsubmit="enviar(this)" target="ifr">
<input type="hidden" name="name">
<input type="hidden" name="email">
</form>
</iframe>
<form action="http://www.dominio.com/cgi-bin/script2.cgi" method="get" onsubmit="enviar(this)" target="ifr">
<table>
<tr>
<td nowrap>&nbsp;</td>
</tr>
<tr>
<td nowrap>
<table width=80%>
<tr>
<td nowrap align="right">Nombre:</td>
<td nowrap><input type="text" name="name" size="21"></td>
</tr>
<tr>
<td nowrap align="right">E-mail:</td>
<td nowrap><input type="text" name="email" size=25></td>
</tr>
</table>
</td>
</tr>
</table>
<input type="submit" value="Enviar">
<input type="reset" value="Borrar">
</form>
</div>
</body>
</html>
</body>
</html>

y reconoce el campo name en el script2 pero como en el 1 tiene otro nombre no lo reconoce, creo que estoy cerca pero no se seguir . Espero que me puedas ayudar . Muchas gracias por tu paciencia.
  #24 (permalink)  
Antiguo 07/04/2004, 13:02
 
Fecha de Ingreso: abril-2004
Ubicación: en una ciudad
Mensajes: 5
Antigüedad: 20 años, 7 meses
Puntos: 0
LO MEJOR

Lo que tendrias que haber hecho desde un principio es poner aca todo el formulario, eso va a hacer que si alguien te pasa una funcion lo haga de forma completa sin que tu necesites hacerle agregados.
  #25 (permalink)  
Antiguo 07/04/2004, 13:39
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Gracias Amando, tienes razón, supongo que con lo que he puesto antes, aunque no ponga todos los campos, se puede hacer lo que tú dices. Pero por si hace falta, aquí lo pongo lo más reducido posible (para que quepa):

<html>
<head>
<!-- <SCRIPT language="JavaScript" src="http://www.dominio.com/js/scriptmenu1.js"></SCRIPT>
<SCRIPT language="JavaScript" src="http://www.dominio.com/js/nomouse.js"></SCRIPT>
<SCRIPT language="JavaScript" src="http://www.dominio.com/js/verificarmail.js"></SCRIPT>
<SCRIPT language="JavaScript" src="http://www.dominio.com/js/primeramayuscula.js"></SCRIPT>
<SCRIPT language="JavaScript" src="http://www.dominio.com/js/repetirmail.js"></SCRIPT> -->
<title>Formulario de inscripción</title>
<style type="text/css">
<!--
BODY {font-family: arial narrow;font-size: 12pt;color: 000080;}
a:link {text-decoration:none;color:0000FF}
a:hover {text-decoration:underline;color:0000FF;font-weight:bold}
a:visited {text-decoration:none;color:0000FF}
a:active {text-decoration:underline;color:0000FF;font-weight:bold}
-->
</style>
</HEAD>
<BODY> <!-- onLoad="init()" -->
<!-- <script language="JavaScript" src="http://www.dominio.com/js/scriptmenu2.js"></script> -->
<div align="center">
<center>
<table width="80%" height="100%">
<tr>
<td width="2%" height="100%">&nbsp;</td>
<td width="3%" colspan="2" height="100%">&nbsp;</td>
<td width="90%" height="100%" align="justify" valign="top">
<form action="http://www.dominio.com/cgi-bin/script1.cgi" method="POST" onsubmit="javascript:emailCheck(this.email1.value) ;">
<input type="hidden" name="sponsor" value="elquesea">
<input type="hidden" name="nombresp" value="elquesea">
<input type="hidden" name="emailsp" value="elquesea">
<input type="hidden" name="nombrem" value="elquesea">
<input type="hidden" name="emailm" value="elquesea">
<input type="hidden" name="mentor" value="efectivo">
<input type="hidden" name="nombrespm" value="elquesea">
<input type="hidden" name="emailspm" value="elquesea">
<input type="hidden" name="mentorsp" value="elquesea">
<input type="hidden" name="nombremm" value="elquesea">
<input type="hidden" name="emailmm" value="elquesea">
<input type="hidden" name="mentorm" value="elquesea">
<input type="hidden" name="direccionsp" value="elquesea">
<input type="hidden" name="cpsp" value="elquesea">
<input type="hidden" name="localidadsp" value="elquesea">
<input type="hidden" name="provsp" value="elquesea">
<input type="hidden" name="paissp" value="elquesea">
<blockquote>
<p align="center">
Formulario de Inscripción
<table>
<tr>
<td nowrap><b>Información de Contacto</b></td>
</tr><tr>
<td nowrap>
<table width=80%>
<tr>
<td nowrap align="right">Nombre de usuario:</td>
<td nowrap><input type="text" name="username" size="15" maxlenght="15"></td>
</tr>
<tr>
<td nowrap align="right">Nombre:</td>
<td nowrap><input type="text" name="nombre" size=21 onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr>
<tr>
<td nowrap align="right">Apellidos:</td>
<td nowrap><input type="text" name="apellidos" size=30 onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr>
<tr>
<td nowrap align="right">Dirección:</td>
<td nowrap><input type="text" name="direccion" size=34 onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr>
<tr>
<td nowrap align="right">Código Postal:</td>
<td nowrap><input type="text" name="cp" size=6></td>
</tr>
<tr>
<td nowrap align="right">Ciudad:</td>
<td nowrap><input type="text" name="ciudad" size=25 onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr>
<tr>
<td nowrap align="right">Provincia:</td>
<td nowrap><input type="text" name="provincia" size=25 onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr>
<tr>
<td nowrap align="right">País:</td>
<td nowrap>
<select name="pais" size="1">
<option value=""><--Elegir un país--></option>
<option>Alemania</option>
<option>Argentina</option>
<option>Australia</option>
</select></td>
</tr>
<tr>
<td nowrap align="right">E-mail:</td>
<td nowrap>
<input type="text" name="email1" size=25 onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr>
<tr>
<td nowrap align="right">Repetir e-mail:</td>
<td nowrap>
<input type="text" name="email3" size=25 onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr>
<tr>
<td nowrap align="right">Otro e-mail:</td>
<td nowrap>
<input type="text" name="email2" size=25 onChange="javascript:this.value=this.value.toLower Case()";></td>
</tr>
<tr>
<td nowrap align="right">Fecha de nacimiento:</td>
<td nowrap><input type="text" name="fecha_nac" size=10>(dd/mm/aaaa)</td>
</tr>
<tr>
<td nowrap align="right">Cómo nos encontraste:</td>
<td nowrap>
<select size="1" name="como" tabindex="8">
<option value="" selected><-- Elegir una opción --></option>
</select></td>
</tr>
</table><br>
</blockquote></td>
</tr></table><br>
<center>
<input type="submit" value="Enviar"><!-- onClick="javascript:changeCase(this.form.nombre);c hangeCase(this.form.apellidos);changeCase(this.for m.direccion);changeCase(this.form.ciudad);changeCa se(this.form.provincia)" -->
<input type="reset" value="Borrar">
</center><br>
</form>
</td>
<td width="3%" colspan="2" height="100%">&nbsp;</td>
<td width="2%" height="100%">&nbsp;</td>
</table>
</center>
</div>
</body>
</html>


Este form es el que necesito enviar a 2 Cgi's, lo he simplificado todo lo posible pero he dejado las llamadas a los distintos Js que uso (como comentarios HTML) para que se vea del todo.

Espero que alguien, con todo esto me pueda echar un cable . Yo ya estoy perdido del todo

Muchas gracias de antemano.
  #26 (permalink)  
Antiguo 07/04/2004, 17:31
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Trataré de explicarte el funcionamiento, pero lo que tienes muy... muy... MUY MAL es poner dentro del iframe el formulario...

Supongo que no conoces los iframes, pero deben estar vacíos.

Prueba a poner el formulario fuera del iframe y verás que mejora.

Saludos
  #27 (permalink)  
Antiguo 07/04/2004, 17:43
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
¡¡Hola Caricatos!!

Te esperaba como "agua de mayo"

Ya lo he sacado del iframe, parece que funciona pero el problema ahora sigue siendo que no me reconoce los campos con distinto nombre ¿cómo puedo solucionar eso?

¡¡¡Eres mi salvación!!!

Espero tu explicación, que seguro me aclarará todas las dudas.

¡¡Un millón de gracias por tu ayuda!!
  #28 (permalink)  
Antiguo 10/04/2004, 01:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Cita:
Mensaje Original por rbczgz
¡¡Hola Caricatos!!

Te esperaba como "agua de mayo"

Con la cantidad de agua que está cayendo en marzo y abril... ¿?

Lo de los campos será cosa del cgi que uses.
Si estás obligado a darle un nombre concreto, puedes repetir los campos (dejándolos ocultos), duplicando su contenido, y deshabilitando (si lo crees conveniente) los innecesarios en cada cgi.

<input type=text name=campo1 value="loquesea" onchange="campo2.value = this.value">
<input type=hidden name=campo2 value="loquesea" >

... y antes de hacer el envío:

document.forms[0].campo1.disabled = true;
document.forms[0].action = "cgi1.cgi";
document.forms[0].submit();

document.forms[0].campo1.disabled = false;
document.forms[0].campo1.disabled = true;

document.forms[0].action = "cgi2.cgi";
document.forms[0].submit();

Saludos
  #29 (permalink)  
Antiguo 15/05/2004, 04:27
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Hola Caricatos!!

Por fin te respondo!! Perdona que no te haya contestado antes, pero ya sabes.... , el tiempo, trabajo, .......


Muchas gracias por toda tu ayuda, al final después de no conseguir nada con lo que me decías (porque soy tan torpe que no me aclaro) lo solucioné de otra forma, con una página intermedia que coge del cgi (creo) los valores de los campos que eliges y colocándolos como ocultos con el nombre del 2º cgi, un <body onload="enviar()"> y otra página para redireccionar el 2º cgi, no se si me aclaro, pero el caso es que con tu ayuda, y la de todos los demás , al final lo hice funcionar y de momento funciona


En resumidas "de cuentas", que muchísismas gracias por tanta ayuda, así se puede uno poner y al final siempre sale algo

En este caso no se cumple aquello de "muchos cocineros estropean el cocido", más bien al revés

Cita:
Con la cantidad de agua que está cayendo en marzo y abril... ¿?
Y sigue cayendo en Mayo
  #30 (permalink)  
Antiguo 15/05/2004, 16:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284


Que bien que te funcione, porque ya me había olvidado del tema, y me hubiera costado algún tiempo retomarlo.

El manejar CGIs también tiene mucha importancia...

Saludetes
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:31.