【问题标题】:html dynamic table print to phphtml动态表格打印到php
【发布时间】:2015-11-19 11:20:36
【问题描述】:

我需要一些帮助...

我创建了一个包含动态表格的表单。我想学习如何通过 php 传递它并将其回显/打印到 php 页面以将页面保存为 pdf。

我被困在这部分。我到处寻找一些答案,但似乎找不到任何答案。

<form action="display_form.php" method="POST">
<table id="dataTable" width="auto" style="margin:-4px 0 0 0;" cellspacing="0px">
    <tr>
        <td style="width:20px;"><INPUT type="checkbox" name="chk" /></td>
        <td><INPUT type="text" name="step" style="width:160px;" autocomplete="on" placeholder="step" required/></td>
        <td><INPUT type="text" name="url" style="width:62px;" autocomplete="on" placeholder="url" required/></td>
        <td><INPUT type="text" name="process" style="width:63px;" autocomplete="on" placeholder="process" required/></td>
        <td>
            <SELECT name="pass-fail" style="width:100px;">
                <OPTION value="Pass">one</OPTION>
                <OPTION value="Fail">two</OPTION>
            </SELECT>
        </td>
        <td><INPUT type="text" name="comment" style="width:190px;" autocomplete="on" placeholder="Comment" required/></td>
</table>
<INPUT type="button" value="Add row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete row" onclick="deleteRow('dataTable')" />
<INPUT type="submit" value="Send"/>

我已经调用了 php 文件 display_form.php 我想在其中显示动态表数据。将其保存为 pdf 的功能也在那里。但我主要是在将表单打印到php文件之后。我在那儿一点运气都没有!

我不担心将表发布到 mysql。我有其他方法在 mysql 中不需要它

非常感谢您的帮助

【问题讨论】:

  • 你能解释一下'将表单打印到 php 文件'是什么意思吗?
  • 打印将html中输入的数据回显到php文件中,然后保存为pdf

标签: php html


【解决方案1】:

两件事

  • 你还没有关闭tr

下一个

将所有输入元素设为数组。然后你可以在你的 php 文件中获取它们

 <td style="width:20px;"><INPUT type="checkbox" name="chk[]" /></td>
    <td><INPUT type="text" name="step[]" style="width:160px;" autocomplete="on" placeholder="step" required/></td>
    <td><INPUT type="text" name="url[]" style="width:62px;" autocomplete="on" placeholder="url" required/></td>
    <td><INPUT type="text" name="process[]" style="width:63px;" autocomplete="on" placeholder="process" required/></td>
    <td>
        <SELECT name="pass-fail[]" style="width:100px;">
            <OPTION value="Pass">one</OPTION>
            <OPTION value="Fail">two</OPTION>
        </SELECT>
    </td>
    <td><INPUT type="text" name="comment[]" style="width:190px;" autocomplete="on" placeholder="Comment" required/></td>

在您的 php 文件中,使用 foreach 循环获取所有值。

  $i = 0;
    $array = array();
    foreach ($_POST['step'] as $row) {
        $array[$i]['step'] = $row;
        $array[$i]['chk'] = isset($_POST['ckh'][$i]) ? 1 : 0;
        $array[$i]['url'] = $_POST['url'][$i];
        $i++;
        //...//so on
    }

    print_R($array);

【讨论】:

  • 伙计们!!!你们是天才!!!!这是工作。循环确实是问题所在。我在 display_form.php 文件中重新查看了该过程并更改了循环以及我的元素。我现在将它添加到页面中向您展示。谢谢 Niranjan N Raju, alexandre, vivek s vamja
  • 发布到 mysql??你的意思是向mysql插入数据??
  • 在我的回答中使用该 for 循环作为您的输入值。然后使用insert batch 插入代码。
  • 我试过,但插入插入到单独的行中。我希望所有答案都在用户所在行所在的一行中
【解决方案2】:

正如我所看到的,javascript addRow 函数应该在表中添加另一个 tr-row(顺便说一下,缺少关闭)。 现在,您在每个表行中都有相同名称的输入。那是行不通的。

你需要说,它们是数组,通过 $_POST['step'][0] 等等来访问它们。 只需给他们 name="step[]" 表单就会自动为您计算索引。

【讨论】:

    【解决方案3】:

    使用 name='step[]',name='url[]',name='process[]' 作为添加行功能的输入类型, 现在,当您提交表单时,您将获得数组,然后将该数组存储如下。

    $step = $_REQUEST['step']; 
    $url = $_REQUEST['url']; 
    $process = $_REQUEST['process']; 
    

    现在使用 foreach 循环。

    foreach($step as $key => $row){
        echo $step[$key];
        echo $url[$key];
        echo $process[$key];
    }
    

    现在将您的数据格式化为 html,然后按照以下链接生成 pdf。

    http://phptopdf.com/

    【讨论】:

      【解决方案4】:
      if (isset($_POST)) {
      $step = $_REQUEST['step'];
      $url = $_REQUEST['url'];
      $process = $_REQUEST['process'];
      $pass_fail = $_REQUEST['pass-fail'];
      $comment = $_REQUEST['comment'];
      
      foreach ($step as $key => $row) {
          {
              ?>
              <table id="dataTable" width="auto" style="margin:-4px 0 0 0;" cellspacing="0px">
                  <tr>
                      <td><INPUT type="text" name="step[]" style="width:160px;" value="<?php echo $step[$key]; ?>"/></td>
                      <td><INPUT type="text" name="url[]" style="width:62px;" value="<?php echo $url[$key]; ?>"/></td>
                      <td><INPUT type="text" name="process[]" style="width:63px;" value="<?php echo $process[$key]; ?>"/>
                      </td>
                      <td><input name="pass-fail[]" style="width:100px;" value="<?php echo $pass_fail[$key]; ?>"/></td>
                      <td><INPUT type="text" name="comment[]" style="width:190px;" value="<?php echo $comment[$key]; ?>"/>
                      </td>
                  </tr>
              </table>
          <?php }
      }
      

      }

      现在工作正常!!

      here the table is displaying correctly

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        • 2018-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-19
        相关资源
        最近更新 更多