PHP - 从动态添加的html表行获取输入

时间:2016-02-10 10:45:22

标签: php

我在这里设置了以下小提琴Fiddle

如您所见,我可以通过单击“添加行”按钮添加输入。

添加的所有输入都具有唯一的ID和名称。问题是,我不能做像

这样的事情
 $actionInput1 = $_POST["actionInput1"]; 
 $actionInput2 = $_POST["actionInput2"]; 
 $actionInput3 = $_POST["actionInput3"]; 

因为我可能需要

{{1}}

取决于添加的行数。那么如何在不知道我需要抓取什么输入的情况下获得所有输入呢?

由于

5 个答案:

答案 0 :(得分:1)

使用数组边界命名输入,例如:

<input type=text name="actioninput[]" />

现在你可以在你的POST或GET(依赖)数组中重复它们:

print_r($_POST);

答案 1 :(得分:1)

name=actionInput替换为name=actionInput[] 它应该是一个具有相同名称的数组 同样的事情将适用于动态生成的所有需要​​的值的表单字段。

答案 2 :(得分:1)

实际上,你需要在隐藏时保持计数器,这样你在发布表单时就会得到,以防你不想将元素维护为数组,否则你可以将元素放在数组中,如下所示:

<input type=text name="inputs[]" />

答案 3 :(得分:1)

假设您的JSFiddle适合您,以下是步骤。

1)获取$_POST的密钥。

2)从键获取最大计数器值。

3)从0count of post进行for循环。

4)如果counter是0,没有后缀,否则,将counter添加为后缀。

5)现在,你得到了变量。

6)对行中的每个元素重复一遍。

<?php
$keys = array_keys($_POST);
$keys = implode(',', $keys);
$n = str_replace('actionInput', '', $keys);
$m = explode(',', $n);
$max = max($m);

for ($i=0 ; $i<=$max ; $i++) {
    $suffix = ($i==0) ? '' : $i;
    if (isset($_POST['actionInput' . $suffix])) {
        echo "<br/>-".$_POST['actionInput' . $suffix];
    }
}

答案 4 :(得分:0)

在添加行jquery事件中更改此行 返回姓名+ i返回姓名

从中删除i然后 名称= actionInput []

的print_r($ _ POST);

它将提供actioninput数组