2

这是我在 PdfHtml 类中的代码:

public function createTable($result){

    $html = "<html>
                    <body>
                        <table>
                            <th>
                                <td>Descripción</td>
                                <td>Artículo</td>
                                <td>Precio</td>
                            </th>
                        ";
    while($row = mysql_fetch_array($result)){
        $html .= "<tr>";
        $html .= "<td>".$row["producto"]."</td>";
        $html .= "<td>".$row["idProducto"]."</td>";
        $html .= "<td>".$row["precio"]."</td>";
        $html .= "</tr>";
    }

    $html .= "</table>
                </body>
                    </html>";

    return $html;
}
</i>

我执行以下操作:

$pdfHtml = new PdfHTML();
$result = $pdfHtml->getProductosPorMarca($idMarca);
$html = $pdfHtml->createTable($result);

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->output();

并抛出这个:

Catchable fatal error: Argument 1 passed to DOMNode::appendChild() must be an instance of DOMNode, null given, called in /opt/lampp/htdocs/ONLINE/dompdf0.6/include/table_frame_decorator.cls.php on line 304 and defined in /opt/lampp/htdocs/ONLINE/dompdf0.6/include/frame.cls.php on line 726

请帮助我,我没有发现我的错误在哪里!!!谢谢!!

4

3 回答 3

7

您的 HTML 是问题的根源。您在 TH 元素中嵌套了一堆 TD 元素,但这无效。容器应该仍然是一个 TR 元素;单个单元格将是 TH 元素。如果你想要一个跨页重复的表头,你可以将表头行嵌套在 THEAD 元素中,将表体嵌套在 TBODY 元素中。

于 2013-03-03T03:37:52.493 回答
0

基本的<table>元素:

$html = "<html>
                    <body>
                        <table>
                            <tr>
                                <th>Descripción</th>
                                <th>Artículo</th>
                                <th>Precio</th>
                            </tr>
                        ";
于 2014-11-28T10:47:03.343 回答
0

使用单引号 ( ' '),如下所示:

public function createTable($result){
  $html = '<html>
                <body>
                    <table>
                        <th>
                            <td>Descripción</td>
                            <td>Artículo</td>
                            <td>Precio</td>
                        </th>';


  while($row = mysql_fetch_array($result)){
    $html .= "<tr>";
    $html .= "<td>".$row["producto"]."</td>";
    $html .= "<td>".$row["idProducto"]."</td>";
    $html .= "<td>".$row["precio"]."</td>";
    $html .= "</tr>';
  }

  $html .= '</table>
            </body>
            </html>';

  return $html;
}
于 2015-07-29T17:20:11.753 回答