我需要一些帮助...
我已经创建了一个包含动态表格的表单。我想学习如何通过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
中使用它我真的很感激帮助
答案 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。
答案 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 }
}
}
现在工作得很好!!