TCPDF无法识别$ _POST

时间:2018-09-06 20:04:00

标签: php tcpdf

我正在尝试创建一个通过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中获取的丝绒吗?

1 个答案:

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