在插入数据库时​​需要识别动态输入/ textareas

时间:2011-04-06 15:06:58

标签: php jquery html

我有一个表单,允许用户动态添加额外的输入和textareas。

由于每个都有多组,我只能抓住输入数组中发布的所有数据。

我需要识别每件事,因为每个输入都是相互关联的。

由于我没有一定数量的字段,我无法预料到与什么有关。

这是一个快速视频,展示了表单的用途:http://www.screenr.com/lxe

在用户输入他们的信息后,在提交时,我将使用php来获取所有发布的数据(有点不确定我将如何做到这一点,因为我无法识别每组结果及其措施)。

我有2个表格,结果,衡量标准,下面你会看到我将如何将每个指标与其结果联系起来。

结果表:outcome.id,outcome.description

度量表:measure.id,measure.description,measure.outcome_id

感谢任何帮助。

2 个答案:

答案 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中复制整个数组结构以跟踪现有的指标。从现有的表单字段中提取索引号是更多的工作 - 可以使用正则表达式,但更多的工作,所以我更喜欢这里的手动计数器。在你的情况下似乎是可行的,除非我遗漏了什么。