Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将附加字段集附加到html表单_Javascript_Php_Jquery_Html_Forms - Fatal编程技术网

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

Javascript 如何将附加字段集附加到html表单,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,示例:假设我们有一个包含3个字段的表单:pc、part_id、part_details。有时,在添加pc时,您需要向数据库中添加其他零件,因此零件id和零件详细信息应重复(零件id和零件详细信息应对应)。我想要的是将这两个字段附加到表单中的最佳方式 我知道如果您只想复制一个字段,您可以将该字段命名为: <input type="text" name="part_id[]"> 这样我们就可以很容易地得到post数据作为数组。但是现在我们复制了不止一个字段,如果我们在后期使用上述方

示例:假设我们有一个包含3个字段的表单:pc、part_id、part_details。有时,在添加pc时,您需要向数据库中添加其他零件,因此零件id和零件详细信息应重复(零件id和零件详细信息应对应)。我想要的是将这两个字段附加到表单中的最佳方式

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

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

这样我们就可以很容易地得到post数据作为数组。但是现在我们复制了不止一个字段,如果我们在后期使用上述方法,那么两个/多个数组将不相关。这里描述的方法似乎是一种很好的方法,但名称一直在变化这一事实也使得使用post数据变得复杂

这里描述了另一种可能的方法。它提供了复制整个表单的想法。我不确定我是否理解正确,但当我尝试在同一页中放置两个相同的表单并提交其中一个表单时,将只提交此表单中的数据,而忽略另一个表单中的数据。此外,它不适合我的场景,因为并非所有字段都应该复制


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

您可以使用另一个级别的索引:

<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]" />


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

在您提供的链接中,它们没有复制表单,只是表单中的元素,这很好。如果你只是在一台PC上添加多个部件,那么就不会有问题。零件将通过数组索引链接(您可以根据订购情况确定)


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

这似乎是个好主意,我将在测试后回来,感谢您在实际工作之后,我发现sahbeewah的答案节省了更多的时间。这个答案使得在下一步操作数据变得容易,但是在前端用javascript生成这些字段需要更多的时间。不管怎么说,既然这个答案让我大开眼界,那就投赞成票吧。这应该是一个可行的方法,但我还是不明白他们想做什么。我只是在寻找一种更理想的方式,不用担心服务器端的数据操作。嗯,它不会变得更干净。下一个(浪费的)步骤是在提交时生成自定义JSON对象,并将JSON作为数据提交。你是对的,你的方法更好,它可以节省javascript复制字段的时间。