header (): come usarlo?

Vorrei sapere quali header HTTP posso mandare tramite questa funzione.

Nel caso specifico avrei bisogo di aprire in una nuova finestra uno script che visualizzi dei dati da stampare (la stampa dovrebbe partire in automatico) e nel contempo reindirizzare la pagina che invoca questo header ad un'altro script.

Spero sia stato chiaro:

- premo un pulsante

- si apre una nuova finestra del browser con dei dati

- si avvia la procedura di stampa

- si ricarica la pagina dove c'era il pulsante e visualizza una nuova pagina

Mi basterebbe trovare un elenco di parametri passabili tramite header(); e rispettivi usi...

il sito mi rimanda ad una reference ma non ho le 'referenze' adatte per capirla  :buck:

Grazie

inviato 10 anni fa
arjuna
X 0 X

Per ottenere questi risultati non serve (e non basta) usare l'istruzione header di PHP. Ti conviene invece precedere con un Javascript che ti apra una nuova finestra pop-up e che faccia puntare la finestra corrente ad un nuovo URL.

Nella pop-up inserirai il codice Javascript per avviare la stampa della pagina.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ecco come ho risolto:

Ho effettuato il redirect tramite LOCATION alla pagina che volevo.

header("Location: pagina.php?val=$dati");

In questa ho impostato un javascript che mi apre una nuova finestra dove ci sono i dati da stampare.

<script language="JavaScript">

newwindow=window.open

("dati.php?action=stampa&val={$s.data}")

newwindow.creator=self

</script>

(la sintassi {$s.data} è quella di Smarty)

Una volta aperta la finestra un altro JS invoca il processo di stampa.

<SCRIPT Language="Javascript">

function printit(){

if (NS) {

    window.print() ;

} else {

    var WebBrowser = '

<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 

CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">

</OBJECT>';

document.body.insertAdjacentHTML('beforeEnd', WebBrowser);

    WebBrowser1.ExecWB(6, 2);

WebBrowser1.outerHTML = "";

}

}

</script>

<SCRIPT Language="Javascript">

var NS = (navigator.appName == "Netscape");

var VERSION = parseInt(navigator.appVersion);

if (VERSION > 3) {

    printit();

}

</script>

Sembra funzionare egregiamente eccetto che la finestra è un popup (a grandezza standard ma sempre un popup) e quindi bisogna abilitare i popup per vederla.

Per ora va bene anche così... ma mi riservo di trovare una soluzione alternativa...

Grazie per l'aiuto.

risposto 10 anni fa
arjuna
modificato 10 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda