Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di am80
    Registrato dal
    Nov 2021
    Messaggi
    2

    Memorizzare su una variabile PHP una tabella per l'export in PDF

    Ciao a tutti, sto riscontrando alcune difficolt� nel tentativo di inviare ad html2pdf una tabella che genero con PHP.

    Questi sono i passaggi:
    Funzione PHP che prende i dati dal DB e stampa la tabella.

    function Tabella() {
    // Query al db...
    echo "<table>";
    echo "<tr>";
    for (...) {
    echo "<td></td>";
    }
    echo "</tr>";
    echo "</table>";
    }

    $template = file_get_contents('templates/tabella.htm');

    $Tabella = Tabella();

    $template = str_replace("#Tabella#", "$Tabella", $template);

    $NOME_FILE = "Tabella1";


    $PDFTABELLA = $template;
    ob_start();
    echo $PDFTABELLA ;
    $content = ob_get_clean();


    require_once ("html2pdf/html2pdf.class.php");


    try {
    $html2pdf = new HTML2PDF('L', 'A4', 'it');
    $html2pdf->setDefaultFont('Arial');
    $html2pdf->writeHTML($content, false );
    $html2pdf->Output('tabelle/'.$NOME_FILE, 'F');
    }


    catch (HTML2PDF_exception $e) {
    echo $e;
    }

    Funziona con tutte le variabili ma se devo include un'intera tabella no.

    Probabilmente � una stupidaggine ma sono un principiante, portate pazienza.

    Grazie per l'aiuto.

  2. #2
    Se la funzione Tabella() fa degli echo, è la chiamata ad essa a dover essere messa tra ob_start() e ob_get_clean();

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,776
    Ciao e benvenuto. A parte quanto indicato da filippo.toso, nella funzione str_replace se devi passare $Tabella come variabile non devi racchiuderla tra virgolette, altrimenti viene passata come stringa testuale e non come variabile.

    Prova a rimuovere le virgolette nel secondo argomento, in questo modo:
    Codice PHP:
    $template str_replace("#Tabella#"$Tabella$template); 
    Fai sapere


    EDIT: come non detto, anche con le doppie virgolette funziona ugualmente anche se nel caso specifico non servono.

    EDIT2:
    Segui il consiglio di filippo.toso, oppure rimuovi gli echo dalla funzione Tabella() e passa la stringa (opportunamente assemblata) con un return.
    Ultima modifica di KillerWorm; 18-11-2021 a 17:55
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Nella funzione str_replace se devi passare $Tabella come variabile non devi racchiuderla tra virgolette
    Il manuale, questo sconosciuto:
    https://www.php.net/manual/en/langua...string.parsing

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,776
    Il manuale, questo sconosciuto:
    Hai ragione, abituato male con JavaScript, mi sono ravveduto subito dopo, vedi mio edit
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Utente di HTML.it L'avatar di am80
    Registrato dal
    Nov 2021
    Messaggi
    2

    Funziona

    Ciao a tutti, ho provato le varie soluzioni proposte, funziona assemblando la variabile sulla funzione (senza gli echo) e utilizzando return. Grazie

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.