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);