如何将其他字段集附加到html表单

时间:2014-05-08 01:01:03

标签: javascript php jquery html forms

示例:我们假设我们有一个包含3个字段的表单:pc,part_id,part_details。有时您需要在添加pc时向数据库添加其他部分,因此应该复制part_id和part_details(part_id和part_details应该是对应的)。我想要的是将这两个字段附加到表单的最佳方法吗?

我知道如果您只想复制一个字段,可以将字段命名为:

<input type="text" name="part_id[]">

然后我们可以轻松地将后期数据作为数组获取。但是现在我们正在复制多个字段,如果我们在后端使用上面的方法,则两个/多个数组将不相关。这里描述的方法似乎是一个很好的http://www.quirksmode.org/dom/domform.html,但名称一直在变化这一事实使得使用后期数据变得复杂。

此处描述了另一种可能的方法Multiple Forms With Input Fields With The Same Name Attribute? Good Or Bad?。它提供了复制整个表单的想法。我不确定我是否理解正确,但当我尝试在同一页面中提交两个相同的表格并提交其中一个时,只会提交此表单中的数据,另一个将被忽略。它也不适合我的场景,因为并非所有字段都应该重复。

那么完成这项重复工作的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用其他级别的索引:

<input type="text" name="pc" />

<!-- First part -->
<input type="text" name="parts[0][part_id]" />
<input type="text" name="parts[0][part_details]" />

<!-- Duplicate part -->
<input type="text" name="parts[1][part_id]" />
<input type="text" name="parts[1][part_details]" />

<!-- Another duplicate part -->
<input type="text" name="parts[2][part_id]" />
<input type="text" name="parts[2][part_details]" />

可以使用jQuery轻松生成每个部分的字段(id和详细信息)。

答案 1 :(得分:1)

在您提供的链接中,他们没有复制表单,只是表单中的元素很好。如果你要添加的只是一台PC的多个部分,那么就不会有问题。零件将通过数组索引链接(您可以依赖于排序)。

part_id []的第一个实例将对应于part_details []的第一个实例。这应该与您的服务器端语言区分开来。例如,在PHP中,part_details [2]将对应于part_id [2]等。