TCPDF не распознает $ _POST - PullRequest
       9

TCPDF не распознает $ _POST

0 голосов
/ 06 сентября 2018

Я пытаюсь создать PDF-файл, который получает данные через POST, я знаю, что данные принимаются, потому что я тестировал с использованием "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`

Это не войдет в цикл из-за

Количество ($ _ POST [ "codProduto"])

при изменении значения он работает, но он по-прежнему не показывает никаких значений или «td». Я также пытался создать переменные со значениями из сообщения, но он все равно не работал.

Может ли кто-нибудь помочь мне, как использовать velues, полученные из поста в tcpdf?

1 Ответ

0 голосов
/ 13 сентября 2018

Я воссоздал ваш POST объект, и он отлично подходит для меня. Здесь есть пара вещей, на которые стоит обратить внимание.

Во-первых, input не поддерживается тегом для синтаксического анализатора TCPDF HTML. Если вы просто хотите добавить рамки вокруг значений полей, вместо этого добавьте границу к тд.

Во-вторых, HTML-парсер TCPDF довольно хрупок. Вы должны убедиться, что вы включили все необходимые теги 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);
...