TCPDF 无法识别 $_POST
TCPDF won't recognize $_POST
我正在尝试创建一个通过 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"。我也尝试用 post 中的值创建变量,但它仍然没有工作。
有人可以帮助我如何在 tcpdf 中使用从 post 收到的值吗?
我重新创建了您的 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);
我正在尝试创建一个通过 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"。我也尝试用 post 中的值创建变量,但它仍然没有工作。
有人可以帮助我如何在 tcpdf 中使用从 post 收到的值吗?
我重新创建了您的 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);