Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155

    [PHP] header e continuazione

    Ho cercato molto prima di postare, ma devo purtroppo alzare bandiera bianca e chiedere aiuto.

    Ho la necessita' di esportare i dati visualizzati da un form ad un foglio excel.

    Inserendo il codice in testa al frame:
    codice:
            $Dom_Excel = ((isset($_REQUEST['Dom_Excel'])) ? $_REQUEST['Dom_Excel'] : "");
            if ($Dom_Excel == 1) {
                $Dom_Excel = 0;
                $nomefile = basename($_SERVER['PHP_SELF'], '.php3') . ".xls";
    
                header ("Content-Type: application/vnd.ms-excel");
                header ("Content-Disposition: attachment; filename=$nomefile");
                header ("Pragma: no-cache");
                header ("Expires: 0");
    
                $sw = 1;
            }
    e richiamando se' stesso passando il valore "Dom_Excel=1" mi appare la finestra di richiesta salvataggio file excel o apertura file excel.
    Fin qui tutto bene, il fogli excel lo crea perfettamente.

    Il problema mio e' che dopo l'esecuzione degli header sembra che non si riesca assolutamente ad eseguire nessun'altra riga di codice, come ad esempio le istruzioni
    codice:
        echo "<script type=\"text/javascript\" language=\"JavaScript\">
                      document.forms[0].action='nome_frame_menu.php3';
                      document.forms[0].submit();
              </script>";
    Dopo l'esecuzione degli headers inoltre mi svanisce quello che era visualizzato precedentemente e mi appare un form = blank, mentre io avrei bisogno di reimpostare almeno il menu' orizzontale e qualche dicitura.

    Dove sbaglio?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    una volta che hai modificato il content-type la frittata è fatta. Oramai lì si aspetta di avere un foglio di excel che poco ha a che fare con una pagina html. Potresti mettere lo script di generazione in un IFRAME o in popup
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    grazie Andrea1979 per la risposta.

    Avevo gia' fatto l'esperimento di apertura pop-up per l'estrazione del foglio excel e funzionava perfettamente; l'unico neo e' rappresentato dal fatto che la pop-up mi rimane sempre aperta e devo chiuderla a manina.
    Se poi eseguo "n" volte l'estrazione, mi appaiono "n" schermate di pop-up...
    Se esiste un rimedio al proliferare dei pop-up, fammelo sapere.


  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    sì: dai sempre lo stesso nome alla popup.

    window.open('pagina_crea_xls.php?doc=1','excelpopo up','parametri vari');
    window.open('pagina_crea_xls.php?doc=2','excelpopo up','parametri vari');
    ...
    window.open('pagina_crea_xls.php?doc=134','excelpo poup','parametri vari');


    in questo modo dovrebbe sempre essere riutilizzata la stessa finestra.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Faro' una prova in tal senso, grazie ancora.

    Cmq mi sembra di capire che non c'e' modo di chiudere, magari dopo tot secondi, la pop-up, vero?

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    la dovresti chiudere dalla pagina che l'ha aperta, visto che la popup stessa andrebbe a contenere un header (per il file excel) che farebbe a botte con quello html necessario a fare un self.close() via javascript: era il motivo per cui ti ho consigliato l'iframe (che potrebbe anche essere nascosto)... ridirigi la creazione dei tuoi file XLS all'iframe e sei apposto.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    L'iframe non l'ho mai utilizzato.

    Se hai un po' di tempo, potresti farmi un esempio?

    Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Per esempio:

    codice:
    <html>
    <head>
      <script language="javascript">
        function loadPage(page,dest) {
          document.getElementById(dest).src = page.value;
        }
      </script>
      <title>Demo IFRAME</title>
    </head>
    <body>
    <select name="cambiapagina" onchange="loadPage(this,'destiframe');">
      <option value=""></option>
      <option value="http://www.google.com">GOOGLE</option>
      <option value="http://www.yahoo.com">YAHOO!</option>
      <option value="http://www.msn.com">MSN</option>
    </select>
    
    
    <iframe id="destiframe" width="400" height="300" src=""></iframe>
    </body>
    </html>
    Nel tuo caso dirigerai i click all'iframe (tramite name, o id) e ci caricherai dentro lo script che genera il file xls. Puoi anche settare le dimensioni dell'iframe a 1 x 1 pixel e/o renderlo invisibile tramite style="display:none;"
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    io sto cercando una soluzione per scrivere + fogli excel all'interno dello stesso file nel caso il mio export superi il limite di 65530...

  10. #10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.