我有一个表单,允许用户动态添加额外的输入和textareas。
由于每个都有多组,我只能抓住输入数组中发布的所有数据。
我需要识别每件事,因为每个输入都是相互关联的。
由于我没有一定数量的字段,我无法预料到与什么有关。
这是一个快速视频,展示了表单的用途:http://www.screenr.com/lxe
在用户输入他们的信息后,在提交时,我将使用php来获取所有发布的数据(有点不确定我将如何做到这一点,因为我无法识别每组结果及其措施)。
我有2个表格,结果,衡量标准,下面你会看到我将如何将每个指标与其结果联系起来。
结果表:outcome.id,outcome.description
度量表:measure.id,measure.description,measure.outcome_id
感谢任何帮助。
答案 0 :(得分:1)
我建议将它们命名为数组
示例可能是这样的
<input name="outcome[i]" type="text" />
<input name="outcome[i][measure][]" type="text" />
其中i是您在添加元素时定义的数字
然后在你的php中你可以解析它们for循环或其他什么
答案 1 :(得分:1)
您需要在Javascript中手动管理数组索引。但似乎你只需要计算结果ID,所以:
var outcome_num = 0;
$("button.addoutcome").click(function(){
$("form").append("<input name='outcome[" + outcome_num + "]' ...>")
});
并且度量列表将带有outcome_num
,但是另外一个数组本身:
.append("<input name='measure[" + outcome_num + "][]' ...>");
所以你最终得到:
<input name='outcome[1]' ...>
<input name='measure[1][]' ...>
<input name='measure[1][]' ...>
<input name='measure[1][]' ...>
<input name='outcome[2]' ...>
<input name='measure[2][]' ...>
<input name='measure[2][]' ...>
这样您就会以可用的关联格式接收数据。只需循环遍历$_REQUEST["outcome"][$i]
和$_REQUEST["measure"][$i][$x]
子阵列。
如果每个度量子条目都需要添加_description字段,那么您还必须手动计算它们。在这种情况下,最好在Javascript中复制整个数组结构以跟踪现有的指标。从现有的表单字段中提取索引号是更多的工作 - 可以使用正则表达式,但更多的工作,所以我更喜欢这里的手动计数器。在你的情况下似乎是可行的,除非我遗漏了什么。