Foros del Web » Programando para Internet » Javascript »

Explorer carga el segundo sumit al iframe en nueva ventana

Estas en el tema de Explorer carga el segundo sumit al iframe en nueva ventana en el foro de Javascript en Foros del Web. Hola, casi siempre me sacan de dudas en este foro, pero esta vez no encuentro lo que necesito y tengo la cabeza como un bombo. ...
  #1 (permalink)  
Antiguo 12/07/2009, 12:00
Avatar de eupanor  
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 2 meses
Puntos: 0
Solucionado Explorer carga el segundo sumit con files al iframe en nueva ventana

Hola, casi siempre me sacan de dudas en este foro, pero esta vez no encuentro lo que necesito y tengo la cabeza como un bombo.

La cuestión en sí es bastante simple: tengo mi uploader de imágenes en php que manda los datos a un iframe y va guardando archivos sin recargar la página principal ya que me interesa mantener el formulario de datos sin cambios.

Todo perfecto en firefox, puedo enviar varias veces el formulario sin problemas, pero IExplorer abre una nueva ventana en el segundo intento a pesar de que el formulario tiene su target y action: target="subidor_iframe" action="uploader.php"!


Se me olvidaba, es IE7, no he probado con otras versiones.

Muchas gracias con antelación.

Última edición por eupanor; 14/07/2009 a las 14:19 Razón: Solucionado
  #2 (permalink)  
Antiguo 12/07/2009, 21:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Explorer carga el segundo sumit al iframe en nueva ventana

¿Podrías mostrarnos el código que estás usando o dar un enlace a tu página? Así será más fácil ver cuál puede ser el error.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/07/2009, 07:46
Avatar de eupanor  
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Explorer carga el segundo sumit al iframe en nueva ventana

cocinacasera1.com/pru/panel/imagenes/img_upload.php
este es el formulario, ya lo he arreglado para que borre las imágenes.

Parece ser que si no verifico el formulario y lo envío sin ninguna imagen, explorer se comporta como debería, o sea, que se supone que está bien. El problema está en que al subir el segundo fichero no envía los datos al mismo iframe, es como si pasase de él...

¿Y si voy creando iframes dinámicamente con javascript con distintos nombres y les envío a ellos los ficheros...?

Voy a intentarlo, porque no sé que más probar.

Última edición por eupanor; 14/07/2009 a las 11:50
  #4 (permalink)  
Antiguo 14/07/2009, 14:17
Avatar de eupanor  
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Explorer carga el segundo sumit al iframe en nueva ventana

Me respondo a mi mismo.

Al final ha funcionado creando un iframe dinámicamente, el caso es que al principio también me cargaba una nueva página pero he encontrado una cosilla por internet que ha funcionado:

el formulario no es nada del otro mundo:
Código HTML:
<form name="formulario" enctype="multipart/form-data"  action="uploader.php"  method="post" class="formulario" onSubmit="return submitForm(this);">
Titulo: <input name="titulo" id="titulo" size="40" value="{$titulo}" maxlength="255" />... y otros campos.
...</form> 
...Un javascript para crear files dinámicamente con un li. Hay un montón de cosas por internet y no recuerdo de dónde lo saqué:
Código:
function addFile() {
var li = document.createElement('li');
li.setAttribute('id', 'file-' + gFiles); 
li.setAttribute ('style', 'width:95%;'); 
li.innerHTML = '<span id="liinput-'+ gFiles +'"><input type="file" size="32" name="file[]" onchange="return styleFile(this, '+gFiles+');"></span><div id="lilink-'+ gFiles +'" class="filestyle" style="display:none"></div><a href="#nogo" class="botonmini" onclick="removeFile(\'file-' + gFiles + '\','+ gFiles +')">x</a>';
document.getElementById('files-root').appendChild(li);
gFiles++;
countFiles++;
if(countFiles>=maxfiles) document.getElementById('anadir').disabled=true;
document.getElementById('countFiles').innerHTML=countFiles;
}


al final de la validación del formulario creo el iframe y lo meto en el div, esto es de st-on-it.blogspot.com/2009/06/dynamic-iframes-as-form-targets.html

Código:
iframeId++;//empieza con valor 0
nuevoIframeId= iframeId.toString();//esto se lo he visto a caricatos, pero no sé si hace falta....
iframediv=document.getElementById('subidor_iframe_div');
iframediv.innerHTML = '<iframe id="subidor_iframe'+nuevoIframeId+'" name="subidor_iframe'+nuevoIframeId+'"></iframe>';
//estas dos líneas son las interesantes
var iframe = document.getElementById('subidor_iframe'+nuevoIframeId);
formulario.target = iframe.id;
formulario.submit();

Y ha funcionado!!!!! Joder, estaba a punto de mandar a la M el P formulario. Os juro que esto es por afición, que yo aprendí en un cursillo.

IExplorer go home!!!
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 07:32.