html动态表打印到php

时间:2015-11-19 11:20:36

标签: php html

我需要一些帮助...

我已经创建了一个包含动态表格的表单。我想学习如何通过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

中使用它

我真的很感激帮助

4 个答案:

答案 0 :(得分:0)

2件事

  • 您尚未关闭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);

答案 1 :(得分:0)

正如我所看到的,javascript addRow函数应该在表中添加另一个tr-row(顺便说一下,结果丢失)。 现在,您在每个表行输入具有相同的名称。那不会起作用。

你需要说它们是阵列,通过$ _POST [&#39; step&#39;] [0]等来访问它们。 只要给他们起名字=&#34; step []&#34;并且表单将自动为您计算索引。

答案 2 :(得分:0)

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

$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/

答案 3 :(得分:0)

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