Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2012, 15:03
Avatar de ramiro_md
ramiro_md
 
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 15 años, 8 meses
Puntos: 26
Recargar página tras envío exitoso de formulario.

Buenos días, sinceramente estoy medio confundido y no sé si esta será la sección correcta, ya que mezclo un poco de todo. Cualquier cosa, son libres de moverlo de foro.

La cuestión es la siguiente, tengo un panel de administración que posee varias secciones (usuarios, perfiles, etc...). En este caso me voy a enfocar en el CRUD de los perfiles.

Una de las funcionalidades de esta aplicación es poder exportar e importar los perfiles a un archivo con formato csv. Por ahora estoy liando con la exportación.

A priori tengo mi script PHP para generar el archivo. Este script funciona bien.

El tema fue cuando quise informarle al usuario sobre el estado de la operación (satisfactoria o fallida). Lo cual lo hago con un div estilizado e imprimiendo el valor de una variable de sesión.
He aquí el problema, para descargar el archivo una vez generado por el script "genera.php" tuve que cambiarle los headers a "genera.php" para que me fuerce la descarga del csv. Pero una vez hecho esto no podía redirigir al CRUD "perfiles.php" ya que una vez modificados los headers no permite redirección.

Entonces opté por añadirle "target=popup" al formulario de exportación. Eso hizo que se descargue sin inconvenientes el archivo csv. Pero no informa que la operación fue exitosa. Para eso tengo que refrescar el navegador a mano.

Entonces lo que busco, si es posible, lograr mediante eventos (estuve leyendo, pero creo que no hay ninguno exactamente para lo que necesito) que una vez descargado el archivo el navegador se refresque automáticamente (esto si lo se hacer con js :P ). Pero el problema radica en cómo saber cuando el formulario se envió y el script "genera.php" finalizó su ejecución. Para después claro, refrescar el navegador y leer la variable de sesión que contiene el mensaje del estado de la operación.

No sé si hice mucho lio o se entendió. Agradezco cualquier tipo de opinión o ayudita.
Saludos y desde ya, muchas gracias !.