Visualizzazione dei risultati da 1 a 10 su 10

Discussione: tcpdf e form

  1. #1

    tcpdf e form

    ciao a tutti, ho un problema con la generazione di un PDF per la stampa.
    In un pagina PHP contenente una form
    Codice PHP:
    <FORM name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    vengono recuperati dati da un DB e visualizzati in una tabella, ovviamente in base ai valori che l'utente selezione nelle varie checkbox e menu a tendina.
    la pagina funziona correttamente, vorrei che i valori listati nella tabella potessero essere stampati in PDF (classico bottone 'stampa pdf' in fondo alla pagina) attraverso l'uso della libreria TCPDF, ma proprio non ne vengo fuori.... qualcuno potrebbe gentilmente darmi qualche dritta...
    Premetto che se invece di creare il file dalla form, costruisco una pagina PHP con SELECT predefinita allora il formato PDF di TCPDF viene compilato correttamente, il mio problema è quello di riuscire ad intercettare i valori all'interno della
    Codice PHP:
    if(isset($_POST['submit'])) { 
    //....//

    posso valutare anche soluzioni che non prevedano l'uso di TCPDF, ma quello che mi interessa è che in fase di generazione della stampa io possa inserire ulteriori elementi, quali il 'logo', il 'nome dell'autore' etc. etc.
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Mah... se tu hai uno script che genera correttamente il pdf con la libreria che dici, dove usi alcuni dati "variabili" (es. un "titolo"), allora considera il tuo script che sarà qualcosa come:

    Codice PHP:
    // ...elaborazione per la libreria pdf...
    // ... da qualche parte userai la variabile $titolo ...
    // ... etc.. 
    semplicemente metti tutto il blocco dentro l'if che hai indicato: $titolo - se è un campo del form - avrà valore $_POST['titolo'] (se c'è un INPUT TEXT con NAME=titolo) e così via...

  3. #3
    scusami ma non ho capito quello che hai scritto? potresti spiegare meglio.... grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Tu hai già uno script che genera il pdf usando delle variabili (es. "$titolo" dove vuoi mettere un titolo) e così via... o no? Così mi è parso di capire...

  5. #5
    ok, scusa mi sono spiegato male.
    Io ho la pagina PHP che contiene il form che a sua volta genera la tabella. tutto qui.
    avrei bisogno di poter stampare la tabella in pdf.
    forse non era chiara la parte in cui ho scritto:
    Premetto che se invece di creare il file dalla form, costruisco una pagina PHP con SELECT predefinita allora il formato PDF di TCPDF viene compilato correttamente,
    quella è solo una prova che ho fatto, il problema di quella pagina è che non viene compilata dinamicamente dalla form, ma si basa su una SELECT predefinita.

    Essenzialmente io devo poter stampare in pdf la tabella generata. Ho trovato un esempio favoloso su:
    http://www.ibm.com/developerworks/op...x.html?ca=drs-
    e fa esattamente quello che voglio io, popola una tabella e se fai click sul bottone stampa salva il pdf!
    il problema è che non riesco a popolare l'array partendo dalla mia select, l'autore lo ha generato 'manualmente'
    Codice PHP:
    $invoiceData['items'][] = array( 'Café Latté'22.992.99 );
    $invoiceData['items'][] = array( 'San Lorenzo Dark'11.351.35 );
    $invoiceData['items'][] = array( 'Sumatra Especial'241.3524 1.35 );
    $invoiceData['items'][] = array( 'Rooibos'50.750.75 ); 

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Allora risolviamo se posti la query che vuoi fare tu, magari, e vediamo come generare il vettore.

  7. #7
    questa è la SELECT:
    Codice PHP:
    $sql "SELECT * FROM student";
    $result mysql_query($sql);        
            
    $temp=array();
            while(
    $row mysqli_fetch_row($result)) {
            
                
    $temp[]=$row;
                
            } 
    l'array $invoiceData['items'][] ...... è fatto così :
    Codice PHP:
    $invoiceData = array(
        
    'user' => 'nome utente',
        
    'date' => date_format( new DateTime(), DateTime::W3C ),
        
    'items' => array()
    ); 

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sembra semplice, allora... potresti indicare:

    - com'è fatto il tuo vettore "$temp" (postane un paio di elementi, magari);
    - per i singoli oggetti (es.: array( 'Café Latté', 2, 2.99, 2 * 2.99 ); ) sai già cosa sono i parametri?

    Dopodichè facciamo un bel loop che "mappa" il tuo vettore $tempo in $invoiceData['items'], sarà qualcosa come:

    Codice PHP:
    $invoiceData['items'] = array();
    foreach (
    $temp as $elem) {
      
    $nomeprodotto $elem['...']; // qui ci vuole il nome del tuo campo;
      
    $par1 = ...;
      
    $par2 = ...;
      
    $par3 = ...;
      
    $invoiceData['items'][] = array($nomeprodotto$par1$par2$par3); 
    }; 
    ..dove bisogna "mappare" bene i dati...

  9. #9
    il vettore contiene ad esempio:
    codice:
    [0] => Array ( [0] => 77777 [id] => 77777 [1] => prova [utente] => [2] => BDBSB [nomebiblio] => BDBSB [3] => 0 [isAuthority] => 0 [4] => DVD [tipo] => DVD [5] => 2012-01-06 [date] => 2012-01-06 [6] => 4 [contatore] => 4 )  
    [1] => Array ( [0] => 98 [id] => 98 [1] => test [utente] => test [2] => BIBAM [nomebiblio] => BIBAM [3] => 0 [isAuthority] => 0 [4] => BK [tipo] => BK [5] => 2012-01-06 [date] => 2012-01-06 [6] => 5 [contatore] => 5  )
    per quanto riguarda i dati
    (es.: array( 'Café Latté', 2, 2.99, 2 * 2.99 ); )
    sono quelli presi dall'esempio al link che avevo indicato qualche post prima, li ha inseriti manualmente l'autore per popolare l'esempio, non si riferiscono a nulla di speciale, servono solo per riempire le righe della tabella, quella di sopra è la prima riga, etc. etc....

  10. #10
    ho risolto, grazie eiyen per il prezioso aiuto!!!!!
    l'array lo popolo così:

    Codice PHP:
    $invoiceData['items'] = array(); 
    foreach (
    $temp as $elem) { 
      
    $nomeprodotto $elem['nomebiblio']; // qui ci vuole il nome del tuo campo; 
      
    $par1 $elem['tipo']; 
      
    $par2 $elem['copieUni']; 
      
    $par3 $elem['date']; 
      
    $invoiceData['total'] = 0;
      
    $invoiceData['items'][] = array($nomeprodotto$par1$par2$par3);  
    }; 

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.