【发布时间】:2011-08-29 15:59:21
【问题描述】:
我在将数据作为数组发布时遇到了一些问题。这就是我希望我的数据发布的方式:
array(
['someName'] =>
array([0] =>
array(['description'] =>890
['valore'] =>444)
[1] =>
array(['description'] =>98090
['value'] =>77)
)
如果我的 html 是这样的,我知道我可以做到这一点:
<input type='text' name="someName[0][value]">
<input type='text' name="someName[0][description]">
<input type='text' name="someName[1][value]">
<input type='text' name="someName[1][description]">
我的问题是输入字段位于表的行上,用户可以根据需要添加/删除任意数量的行,所以我不能有固定索引(或者我必须修改输入字段的名称每次添加一行,因为每次我添加一行时,我都会克隆表中的上一行)
所以我要问的是这两件事之一:
1) 有没有办法在不指定索引的情况下按照我想要的方式发布数据
2)如果没有,我如何动态修改新的输入字段,以便它们具有带有新索引的更新名称?
编辑 - 我已经尝试使用 name="someName[value][]" 和 name="someName[description][]" 但输出不是所需的:
array(['terreniOneri'] =>
array(['descrizione'] =>array([0] =>890
[1] => 98090)
['valore'] =>array([0] =>444
[1] =>677)
)
我知道我可以在 php 中迭代这个数组我只是想知道我是否可以避免它。
【问题讨论】:
-
评论因为没有时间提供全面的答案:您可以在变量中生成模板行而不是复制顶行(例如
var template='<tr><td><input name=someName[%%ROWNUM%%][description]>...</td></tr>,然后用下一个索引替换所有出现的%%ROWNUM%%您想要(您必须跟踪您的计数)。然后使用 jquery 将其构建为 HTML 并将其添加到表格的末尾。 -
@chris 我需要克隆该行,因为“someName”可能因行而异,因此我无法对其进行硬编码。我应该做的(但我不知道该怎么做)是在新行中更改名称中的索引(只是数字)(这样如果我在原始行中有 someName[1][description] , 副本有 someName[2][description]) 如你所指,减法没问题!
-
好吧,你也可以让“someName”成为模板变量,或者为不同的目的存储不同的模板,等等。一旦你使用了 javascript,你应该能够做任何你想做的事情。跨度>