动态设置表单实例的数量,并使用php将所有表单实例保存为csv

时间:2009-06-16 03:43:58

标签: php html csv

我正在使用php脚本来获取现有的csv文件(我们将其称为模板)并在页面中打开它并使用它的数据填充可编辑的文本字段1到50次(用户决定了多少) ,一旦编辑到用户的愿望,然后可以全部保存到单独的组合csv文件,与模板分开。

我添加了一个指向我需要如何工作的图表的链接。我可以打开一个csv,我可以编辑和保存csv,但我不知道如何动态地获取用户需要的克隆数量,并以一种方式呈现模板多次,当用户完成时,所有字段都加入作为单个csv的行并保存到新文件。

Diagram Link

以红色突出显示的区域是我遇到问题的区域。

模板包含大约25个字段,因此模板(克隆)的每个实例将具有25个可编辑字段,这些字段使用原始数据填充。我相信我自己可以做到这一点,但我需要指出正确的方向,如何动态设置原始模板的克隆数,然后在完成后将所述克隆组合成单个csv文件中的行。

2 个答案:

答案 0 :(得分:0)

您可以将字段命名为数组:

<input type='text' name='field1[]'>
<input type='text' name='field2[]'>
...
<input type='text' name='field25[]'>

然后跟踪您拥有的字段数和行数:

<input type='hidden' name='rowcount' value='50'>
<input type='hidden' name='fieldcount' value='25'>

然后在服务器端,$_POST['field1']将是一个可以轻松操作的数组:

$fields = $_POST['fieldcount'];
$rows = $_POST['rowcount'];

$csv = array();
for($y = 0; $y < $rows; $y++) {
    $row = array();
    for($x = 0; $x < $count; $x++) {
        $row[$x] = $_POST['field' . ++$x];
    }
    $csv[] = $row;
}
// use fputcsv here.

这是一个粗略的估计,但你可以从那里拿走......

答案 1 :(得分:0)

我可能会完全误解你正在尝试做什么,但我会猜测。

获取用户选择的克隆数并循环显示可编辑的表单。使用数组作为表单/字段的名称

<?php foreach( range(1, NUMBER_OF_CLONES ) as $clone_number ): ?>
<form name="form[<?= $clone_number ?>]">
<input type="text" name="form[<?= $clone_number ?>]['name']">
</form>
<?php endif; ?>

这将显示NUMBER_OF_CLONES个表单。

将它全部保存到$ _POST ['form']数组的一个文件循环中,该数组将包含NUMBER_OF_FORMS项(表单)并创建csv。

如果我完全错过了你的观点,我很抱歉