Foros del Web » Programando para Internet » Javascript »

Enviar mas de 2 formularios con un unico submit

Estas en el tema de Enviar mas de 2 formularios con un unico submit en el foro de Javascript en Foros del Web. Hola. La idea es la siguiente: <form name="fr1" action="loquesea.cgi" method=post> ....... <input type="text" name="campo1"> </form> <form name="fr2" action="loquesea.cgi" method=post> ....... <input type="text" name="campo2"> </form> <form ...
  #1 (permalink)  
Antiguo 02/12/2005, 04:44
 
Fecha de Ingreso: noviembre-2005
Mensajes: 32
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Enviar mas de 2 formularios con un unico submit

Hola. La idea es la siguiente:

<form name="fr1" action="loquesea.cgi" method=post>
.......
<input type="text" name="campo1">
</form>
<form name="fr2" action="loquesea.cgi" method=post>
.......
<input type="text" name="campo2">
</form>
<form name="fr3" action="loquesea.cgi" method=post>
.......
<input type="text" name="campo3">
</form>
<form name="enviar_todo" method=post>
<input type="button" class="boton" name="enviar" value="enviar" onClick="envia();">
</form>

y en el sector <head> va lo siguiente:
<script>
function envia()
{
document.forms.fr1.submit();
document.forms.fr2.submit();
document.forms.fr3.submit();
}
</script>

El problema es que se envia un solo campo de los formularios, el último y no los anteriores.
¿alguna idea?. Gracias
  #2 (permalink)  
Antiguo 02/12/2005, 05:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Hola:

No es como dices, sino que al hacer submit el primer formulario, se pierde el control de la página y no se ejecutan las otras líneas... (no creo que solo llegue el último, sino el primero )

Te recomiendo que uses un solo formulario...

Con javascript podrías rellenar campos ocultos o hacer algún "truquillo".

Tal vez sea mejor que nos explique mejor tu intención.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 02/12/2005, 13:44
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 11 meses
Puntos: 0
Yo te recomendaría que envíes solo un formulario y los manipules individualmente del lado del servidor (no sé exactamente que hacés con esa información después).

De esa forma también funcionaría perfecto para aquellas personas que navegan sin javascript / con javascript desactivado.

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #4 (permalink)  
Antiguo 03/12/2005, 03:41
 
Fecha de Ingreso: noviembre-2005
Mensajes: 32
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola, esta bien, mi idea es tener un control individual de cada formulario y por supuesto utilizaria dhtml para ocultar los subformularios y que aparezca solo alguno de ellos. Por ejemplo mi intención sería:

<form name="fr1" action="loquesea.cgi" method=post>
<input name="pic0" type="file" size="10">
<input type="text" name="campo1">
<input type="reset" class="" value="Cancelar">
</form>
De esta forma yo tengo la posibilidad de que el usuario resetee solo una imagen no todas (esto lo hace el usuario para actualizar las fotos de su producto que pueden ser 4 en total). Entonces con algo de javascript y dhtml el usuario por cada formulario vería una foto en tamaño pequeño, si no le agrada la que eligio puede cambiarla individualmente sin tener que borrar todas.

Gracias a todos.
  #5 (permalink)  
Antiguo 03/12/2005, 22:33
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 5 meses
Puntos: 39
En ese caso la solucion podria ser manejar el reset manualmente, de esta forma podrias tener un solo formulario.
Algo asi:
Código HTML:
<form name="enviar_todo" action="loquesea.cgi" method=post>
<input name="pic0" type="file" size="10">
<input type="text" name="campo1">
<input type="button" class="" value="Cancelar" onClick="Resetear();">
<input name="pic0" type="file" size="10">
<input type="text" name="campo1">
<input type="button" class="" value="Cancelar" onClick="Resetear();">
<input name="pic0" type="file" size="10">
<input type="text" name="campo1">
<input type="button" class="" value="Cancelar" onClick="Resetear();">
<input name="pic0" type="file" size="10">
<input type="text" name="campo1">
<input type="button" class="" value="Cancelar" onClick="Resetear();">
<input type="button" class="boton" value="Enviar" onClick="envia();">
</form> 
La funcion Resetear podria tener algun parametro.
Bueno, es una idea
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 08/12/2005, 03:49
 
Fecha de Ingreso: noviembre-2005
Mensajes: 32
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola Flaviovich,

Lo único que se me ocurre para resetear cada uno de los campos es utilizar una función jscript de Microsoft IE6 pero no funciona en Netscape y es la siguiente:
<script type="text/javascript">
function updatePreviewImage(num) {
file = document.getElementById('FILE'+num);
image = document['previewImage'+num];
image.src = 'file://' + file.value;
image.width = 100;
image.height = 75;
return true;
}
function resetPreviewImage(num) {
document.getElementById('FILE'+num).focus();
document.getElementById('FILE'+num).select();
document.execCommand("Delete");
document.getElementById('FILE'+num).blur();
var sImageSrc = '';
sImageSrc = 'images/f.gif';
document['previewImage'+num].src = sImageSrc;
document['previewImage'+num].width = 80;
document['previewImage'+num].height = 80;
}
</script>

y en el body lo siguiente:

<form action="upload.cgi" method="POST" name="fvalida" enctype="multipart/form-data">
<td class="even">Fotos:
<td class="odd" valign="top">
<input name="algo" type="hidden" value="238">
<b>Archivo de imágenes:</b><br /><br />
<ol>
<li>
<input name="FILE0" id="FILE0" type="file" onChange="updatePreviewImage(0);">
&nbsp;&nbsp;<input type="button" value="Borrar foto" onclick="resetPreviewImage(0);"></li>
<li>
<input name="FILE1" id="FILE1" type="file" onChange="updatePreviewImage(1);">
&nbsp;&nbsp;<input type="button" value="Borrar foto" onclick="resetPreviewImage(1);">
</li>
<li>
<input name="FILE2" id="FILE2" type="file" onChange="updatePreviewImage(2);">
&nbsp;&nbsp;<input type="button" value="Borrar foto" onclick="resetPreviewImage(2);">
</li>
<li>
<input name="FILE3" id="FILE3" type="file" onChange="updatePreviewImage(3);">
&nbsp;&nbsp;<input type="button" value="Borrar foto" onclick="resetPreviewImage(3);">
</li>
</ol>
<em></em>
</td>
<td valign="top" class="odd"><b>Imágenes previsualizadas:</b><br /><br /><div style="width:120px; height:90px; float:left; text-align:center;">
<em>Photo 1:</em><br /><img name="previewImage0" src="images/f.gif"></div><div style="width:120px; height:90px; float:left; text-align:center;">
<em>Photo 2:</em><br /><img name="previewImage1" src="images/f.gif"></div><div style="width:120px; height:90px; float:left; text-align:center;">
<em>Photo 3:</em><br /><img name="previewImage2" src="images/f.gif"></div><div style="width:120px; height:90px; float:left; text-align:center;">
<em>Photo 4:</em><br /><img name="previewImage3" src="images/f.gif"></div></td>
</tr><br><br>
<input type="submit" id="sub" value="Subir fotos" ><input type="reset" class="" value="Cancelar">
</form>

Pero hay un problemita con la funcion document.execCommand("Delete");
el cursor pasa nuevamente por los campos borrados innecesariamente.

Saludos
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 02:08.