Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/10/2012, 20:18
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Recargar página tras envío exitoso de formulario.

Si, más o menos, ahora veo que el mensaje lo tenés definido en la sesión, la cosa es recargar la página perfil.php

bueno, con una variante de lo que te puse antes

perfil.php
Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>titulo</title>
  6. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  7.  
  8. <script type="text/javascript">
  9. //<![CDATA[
  10. function mensaje(texto){
  11. document.getElementById('mensaje').innerHTML = texto;
  12. }
  13. //]]>
  14. </script>
  15. </head>
  16. <body>
  17.     <p>
  18.     <?php echo time(); ?>
  19. </p>
  20. <form action="genera.php" target="genera" method="post" id="fperfil">
  21. <p>
  22. <input type="text" value="" name="perfil" /> <input type="submit" value="generar perfil"  onsubmit="this.form.reset();"/>
  23. </p>
  24. </form>
  25. <div id="mensaje">
  26.     <!-- fix -->
  27. </div>
  28. <iframe src="about:blank" name="genera" id="genera" width="0" height="0" frameborder="0"></iframe>
  29. </body>
  30. </html>



genera.php

Código PHP:
Ver original
  1. <?php
  2. $datos = $_POST['perfil'];
  3. $crearcvs = file_put_contents("temp.csv",$datos,LOCK_EX);
  4. if($crearcvs !== false){
  5.     ?>
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. /* script */
  9. //parent.mensaje('Se generó el archivo');
  10. parent.location.reload(true);
  11. window.location.href='temp.csv';
  12. //]]>
  13. </script>
  14.  
  15. <?php
  16. }else{
  17. ?>
  18.     <script type="text/javascript">
  19. //<![CDATA[
  20. /* script */
  21. //parent.mensaje('error');
  22. //]]>
  23. </script>
  24. <?php
  25. }
  26.  
  27. ?>

en perfil puse el time() para que veas que se recarga.
Recordá que con lo del .htaccess que te mencioné, ya no son necesarios los headers. Y el nombre del archivo lo podés manejar con una variable. El mensaje de error lo dejamos, no está de más
la clave está en hacer

Código Javascript:
Ver original
  1. parent.location.reload(true);
el true lo usamos para asegurarnos que se carga del server y no de la cache

Se entiende

Te dejo una demo
http://foros.emprear.com/php/perfil/perfil.php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.