Functie in TCPDF
Momenteel ben ik bezig met het maken van een PDF met TCPDF.
$id en $admin komen van de kostenpagina, en roep ik op om te gebruiken in de PDF.
Nu echter loop ik tegen een probleem:
Dit is een stukje van de code die uit 'example' van TCPDF komt, hiermee bouw ik zelf verder namelijk, dit is een stuk waar de input gevoegd moet worden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
// Set some content to print
$html = <<<EOD
$kosten->getPrice($id);
EOD;
// Print text using writeHTMLCell()
$pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
?>
// Set some content to print
$html = <<<EOD
$kosten->getPrice($id);
EOD;
// Print text using writeHTMLCell()
$pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
?>
Nu zien jullie ook meteen de functie die ik wil aanroepen uit mijn class, namelijk:
Alleen de output is nu dus (3); en de hele functie wordt niet uitgevoerd.
Heeft iemand een beetje ervaring met TCPDF en weet diegene hoe dit anders moet of andere suggesties voor me?
Alvast bedankt!
Gr Marijke
Toevoeging op 18/11/2011 15:40:59:
Ok, nu heb ik dit:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
// Set some content to print
$html =
$kosten = new ovasklant;
$kosten->getPrice($adminid);
?>
// Set some content to print
$html =
$kosten = new ovasklant;
$kosten->getPrice($adminid);
?>
En hij rekent wel degelijk wat uit, MAAR in mijn functie staan dus echo's, welke hij nu ziet als headers en krijg ik dus dit te zien als output:
Relatiemanagement 15,00
Totaal:
15,00
Warning: Cannot modify header information - headers already sent by (output started at /home/facturatie/domains/facturatie.ovas.nl/public_html/class/class.ovas.php:87) in /home/facturatie/domains/facturatie.ovas.nl/public_html/tcpdf/tcpdf.php on line 8541
TCPDF ERROR: Some data has already been output to browser, can't send PDF file
Heb je al geprobeerd om de echo's uit de functie te veranderen, zodat de functie gewoon html terugstuurd?
En het liefst verander ik er niet veel aan, omdat ik de functie ook op PHP pagina's aanroep.
Kan je de functie hier plaatsen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
public function getPrice($adminid) {
$sql = "
SELECT
list_modules.nl AS name,
lnk_administrations_modules.id_administration AS id_admin,
list_modules.basic AS price
FROM
lnk_administrations_modules
INNER JOIN
list_modules ON lnk_administrations_modules.id_module = list_modules.id
WHERE
id_administration = %d";
$result = mysql_query(sprintf($sql, $adminid)) or die(mysql_error());
echo "<table>";
$totals = array();
while( $overzicht = mysql_fetch_array( $result ) ){
$totals[] = $overzicht['price'];
echo "<tr><td class=dark>" . $overzicht['name'] . "</td>
<td class=dark>" . number_format($overzicht['price'],2,",",".") . "</td></tr>";
}
echo "<tr><td class=dark><b><br>Totaal:</b></td>
<td class=dark><br>" . number_format(array_sum($totals),2, ",", ".") . "</td></tr> ";
echo " </table>";
}
?>
public function getPrice($adminid) {
$sql = "
SELECT
list_modules.nl AS name,
lnk_administrations_modules.id_administration AS id_admin,
list_modules.basic AS price
FROM
lnk_administrations_modules
INNER JOIN
list_modules ON lnk_administrations_modules.id_module = list_modules.id
WHERE
id_administration = %d";
$result = mysql_query(sprintf($sql, $adminid)) or die(mysql_error());
echo "<table>";
$totals = array();
while( $overzicht = mysql_fetch_array( $result ) ){
$totals[] = $overzicht['price'];
echo "<tr><td class=dark>" . $overzicht['name'] . "</td>
<td class=dark>" . number_format($overzicht['price'],2,",",".") . "</td></tr>";
}
echo "<tr><td class=dark><b><br>Totaal:</b></td>
<td class=dark><br>" . number_format(array_sum($totals),2, ",", ".") . "</td></tr> ";
echo " </table>";
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
public function getPrice($adminid) {
$html = '';
$sql = "
SELECT
list_modules.nl AS name,
lnk_administrations_modules.id_administration AS id_admin,
list_modules.basic AS price
FROM
lnk_administrations_modules
INNER JOIN
list_modules ON lnk_administrations_modules.id_module = list_modules.id
WHERE
id_administration = %d";
$result = mysql_query(sprintf($sql, $adminid)) or die(mysql_error());
$html .= "<table>";
$totals = array();
while( $overzicht = mysql_fetch_array( $result ) ){
$totals[] = $overzicht['price'];
$html .= "<tr><td class=dark>" . $overzicht['name'] . "</td>
<td class=dark>" . number_format($overzicht['price'],2,",",".") . "</td></tr>";
}
$html .= "<tr><td class=dark><b><br>Totaal:</b></td>
<td class=dark><br>" . number_format(array_sum($totals),2, ",", ".") . "</td></tr> ";
$html .= " </table>";
return $html;
}
?>
public function getPrice($adminid) {
$html = '';
$sql = "
SELECT
list_modules.nl AS name,
lnk_administrations_modules.id_administration AS id_admin,
list_modules.basic AS price
FROM
lnk_administrations_modules
INNER JOIN
list_modules ON lnk_administrations_modules.id_module = list_modules.id
WHERE
id_administration = %d";
$result = mysql_query(sprintf($sql, $adminid)) or die(mysql_error());
$html .= "<table>";
$totals = array();
while( $overzicht = mysql_fetch_array( $result ) ){
$totals[] = $overzicht['price'];
$html .= "<tr><td class=dark>" . $overzicht['name'] . "</td>
<td class=dark>" . number_format($overzicht['price'],2,",",".") . "</td></tr>";
}
$html .= "<tr><td class=dark><b><br>Totaal:</b></td>
<td class=dark><br>" . number_format(array_sum($totals),2, ",", ".") . "</td></tr> ";
$html .= " </table>";
return $html;
}
?>
Warning: preg_match_all() expects parameter 2 to be string, object given in /****/tcpdf/tcpdf.php on line 20609
Warning: preg_match_all() expects parameter 2 to be string, object given in /*****/tcpdf/tcpdf.php on line 20617
Warning: preg_match_all() expects parameter 2 to be string, object given in /****/tcpdf/tcpdf.php on line 20638
Catchable fatal error: Object of class ovasklant could not be converted to string in /****/tcpdf/tcpdf.php on line 20653
Gewijzigd op 18/11/2011 16:29:17 door Marijke Hakvoort
Dat klinkt alsof je probeerd een object te echoën, krijg je deze error ook als je de output van de functie op een gewone php pagina uitvoert?
Nee, dan krijg ik netjes de output te zien.
Probeer anders eens in plaats van een html tabel gewoon rechtstreeks met de Cell functie van tcpdf