表单中可变数量的输入字段

时间:2011-06-18 07:11:19

标签: php javascript html forms

我有一个HTML表格基本发票,用于收集订单的详细信息。可以根据用户需要添加或删除新表行。表格包含项目名称,类型,颜色,单价,数量等列。我在<input>标记内放置了<select><td>个标记来收集数据。

我需要向数据库提交完整的发票。我遇到的问题是我不确定如何获取$_POST个变量的输入值,因为<input><select>的数量会根据上的项目不时变化发票。

我可以使用javascript生成基于表行id的输入字段的动态或静态名称。但是如何在提交结束时将这些数据收集到我的php数组或变量中呢?

这是一个表格行。所有其他都与此相似。

<tr class="table_row_blue">
                <td class="table_data_index">1</td>
                <td><select>
                    <option>Test</option>
                    </select></td>
                <td class="table_data_item"><select>   
                    <option>&nbsp;2GB&nbsp;</option>
                </select></td>
                <td><input type="text" id="price_field" size="6"></td> 
                <td><input type="text" id="qty_field" size="6"></td> 
                <td><span class="table_subtotal">125,200.00</span></td>

            </tr>

请给我一些实现我的想法的想法。

3 个答案:

答案 0 :(得分:3)

将所有不同的部分封装在数据库的单独表中。所以你可以单独存储它们并用外键相互关联。

对于像

这样的HTML输入使用数组命名也是一个好主意
<input name="data[Invoice][field1]" />
<input name="data[Invoice][field2]" />

这为您提供了更加结构化且易于迭代的数据。

答案 1 :(得分:1)

添加隐藏的表单值,该值将包含您要提交的行数。 在PHP端,首先检查行数,然后使用获取所有值 行索引。

答案 2 :(得分:1)

您可以拥有提交到数组的输入字段:

<input type="text" id="price_field" name="data[0][price_field]" size="6">

将在$ _POST中显示为

$_POST['data'][0]['price_field']

我建议您使用条目的唯一ID作为区分符(在上例中替换0)