Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/07/2009, 14:17
Avatar de eupanor
eupanor
 
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 16 años
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!!!