我正在尝试创建一个通过POST接收数据的pdf,我知道正在接收数据,因为我使用“ var_dump($ _ POST)”进行了测试。
结果:
array (size=9)
'orcCar' => string 'S' (length=1)
'contItem' =>
array (size=1)
0 => string '1' (length=1)
'codProduto' =>
array (size=1)
0 => string '000zxxxxxxx' (length=14)
'qtdProduto' =>
array (size=1)
0 => string '20' (length=2)
'prcuProduto' =>
array (size=1)
0 => string '4.28' (length=4)
'prctProduto' =>
array (size=1)
0 => string '85.60' (length=5)
'descProduto' =>
array (size=1)
0 => string 'sdsudhudud' (length=33)
'countNitens' => string '2' (length=1)
'codClientecopia' => string '' (length=0)
但是当我尝试在html代码中间或循环中使用它时,它将无法工作。
这是代码的一部分:
for($i=0; $i < count($_POST["codProduto"]); $i++)
{
if ($_POST["prcuProduto"][$i]=="")
{
$_POST["prcuProduto"][$i] = '0';
}
$contador=$_POST["contItem"][$i];
// Set some content to print
$html.="<tr>
<td style='width:5%;'><input type='number' name='contItem[]'
style='width:100%'id='contItem' readonly='readonly' value=".$contador."
maxlength='5'></td>
<td style='width:20%;'><input type='text' name='codProduto[]'
style='width:100%'id='codProduto' readonly='readonly' maxlength='20'
value=". $_POST['codProduto'][$i]."></td>";
}
// Print text using writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);`enter code here`
由于
,它不会进入循环count($ _ POST [“ codProduto”])
当使用值进行更改时,它可以工作,但是它仍然不会显示任何值或“ td”。我还尝试使用帖子中的值创建变量,但它仍然无法工作。
有人可以帮助我如何使用从tcpdf中获取的丝绒吗?
答案 0 :(得分:1)
我重新创建了您的POST
对象,它对我来说很好地进入了循环。这里有几件事要注意。
首先,input
不是TCPDF HTML解析器支持的标记。如果您只是想在字段值周围添加框,请在td中添加边框。
第二,TCPDF的HTML解析器非常脆弱。您需要确保包含所有必要的HTML标记。例如,在您的代码中,$html
的内容未包装在table
标记中,并且行中没有</tr>
标记。 TCPDF还需要将所有HTML属性包装在双引号中。
在我使用TCPDF 6.2.17进行的测试中,以下代码段有效:
$html = '<table cellpadding="2">';
//I'm adding a border on the cells, and TCPDF doesn't support CSS padding
//so we'll use table's cellpadding attribute. Not strictly required, but
//I thought it looked nice.
for($i=0; $i < count($_POST["codProduto"]); $i++)
{
if ($_POST["prcuProduto"][$i]=="")
{
$_POST["prcuProduto"][$i] = '0';
}
$contador=$_POST["contItem"][$i];
// Set some content to print
$html.="<tr>
<td style=\"width:5%; border: 1px solid black; \">$contador</td>
<td style=\"width:20%; border: 1px solid black; \">{$_POST['codProduto'][$i]}</td></tr>";
//Make sure we have our ending </tr> tag and wrap the style attributes in double
//quotes so TCPDF will actually pay attention to them.
}
$html .= '</table>';
// End our table and print text using writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);