Ho dato un'occhiata ma non ho idea di come funzioni. Molte progress bar sono per l'upload di un file.
Come funziona la cosa?
Io ho un file php di questo tipo:
Codice PHP:
<?php
// Includi database
require_once('../inc/database.php');
// Includi libreria
require('../include/fpdf/WriteTag.php');
session_start();
class PDF extends WriteTagPDF {
function Header() {
[...]
}
function Footer() {
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','I',8);
// $this->Write(10,'Documento stampato il '.date('d-m-Y').' alle '.date('H:i').' - ');
$this->Write(10,'Documento stampato - ');
$this->SetTextColor(0,0,255);
$this->SetFont('','U');
$this->Write(10,'Digital 2B s.n.c.','http://www.digital2b.com');
$this->SetTextColor(0,0,0);
$this->SetFont('Arial','I',8);
$this->Line(10, 285, 200, 285);
//Page number
$this->Cell(0,10,'Pagina '.$this->PageNo().'/{nb}',0,0,'R');
}
}
$pdf=new PDF();
$pdf->SetCompression(true);
$pdf->SetTitle('Rendiconto');
$pdf->AliasNbPages();
$pdf->Open();
$pdf->AddPage('P');
mysql_select_db($database_1, $database);
$query1 = "SELECT * FROM tabella";
$fatturazione1 = mysql_query($query1, $database);
$r = mysql_fetch_assoc($fatturazione1);
[...]
mysql_select_db($database_1, $database);
$query2 = "SELECT * FROM tabella";
$fatturazione2 = mysql_query($query2, $database);
$r = mysql_fetch_assoc($fatturazione2);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(20);
$pdf->SetFont('Arial','',10);
$pdf->Cell(20,8,$r['Campo'],0,0,'R');
[...]
// fine ultima pagina
$nomefile = "test.pdf";
$pdf->Output($nomefile, "I");
mysql_free_result(...);
?>
Come faccio sul browser a mostrare una barra con la progressione delle query?
Avevo pensato a due frame
Frame superiore:
Codice PHP:
while(1) {
// controlla $_SESSION['progressione']
// stampa la barra di progressione in base al valore della variabile
}
Frame inferiore: file che genera il PDF e modifica il valore della variabile $_SESSION['progressione']
Ma fare qualcosa in AJAX non sarebbe male. Ma ho bisogno di un esempio pratico che non sia l'upload di un file!