Hola a todos,
Disculpen que habra un nuevo tema para una consulta que ya he hecho, pero necesito de su ayuda porque no consigo obtener lo que necesito.
Tengo tres select asociados que manejo con JavaScript y PHP donde el último (Selector3) es múltiple. Tengo tres botones, dos hacen un submit para coseguir desplegar en pantalla las archivos htm asociados a las opciones seleccionadas por el usuario. El tercer boton en cambio llama una función con la idea de dar la alternativa de descargar directamente los archivos asociados a la selección realizada sin pasar por desplegarlos en pantalla, los archivos para descarga tienen formato xls. Mi problema es que ahora funciona todo bien hasta el momento en que debo servir los archivos para descarga con php, cuando llega a este punto (según el seguimiento que hago con firebug) la única opción de descarga que obtengo es para el último archivo que he enviado a PHP. El código es el siguiente (recorté la línea en el "location.href" para ahorrar espacio aquí):
Código Javascript
:
Ver original<script language="JavaScript" type="text/JavaScript">
var archivos=new Array();//ponemos estas variables fuera de las funciones para que estén disponibles globalmente
var indiceActual=1;
var downloader;
function DownFunction(){
var x =1;
for(i in document.form1.selector3.options){
if(document.form1.selector3.options[i].selected)
{
archivos[x]=document.form1.selector3.options[i].value;//cargamos los archivos a descargar en esta variable global
archivos[x]=archivos[x].replace(".htm",".xls");
x++;
}
}
descargame=function()//definimos la función que se encargará de llamar a las descargas. }
{
if(archivos[indiceActual])
{
location.href=".../download.php?archivo="+archivos[indiceActual];
}
else
{
indiceActual=1;
archivos=new Array();
clearInterval(downloader);//una vez que se han descargado todos, eliminamos el intervalo y limpiamos las variables
}
}
downloader=setInterval(descargame,1000);// aqui definimos el intervalo con un espacio de 1 segundo entre una descarga y otra.
}
</script>
El código en "download.php"
Código PHP:
Ver original<?php
if (!isset($_GET['archivo']) || empty($_GET['archivo'])) { }
$root = ".../ExcelFiles/";
$path = $root.$archivo;
$type = '';
$type = "application/force-download";
header("Content-Type: $type"); header("Content-Disposition: attachment; filename=$archivo"); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . $size);
?>
Agradezco toda la ayuda que me puedan brindar.