我在这里设置了以下小提琴 小提琴
如您所见,我可以通过单击"添加行"按钮来添加输入。
添加的所有输入都具有唯一的 ID 和名称。问题是,我不能只做这样的事情
$actionInput = $_POST["actionInput"];
因为我可能需要
$actionInput1 = $_POST["actionInput1"];
$actionInput2 = $_POST["actionInput2"];
$actionInput3 = $_POST["actionInput3"];
取决于添加的行数。 那么,如何在不知道需要获取哪些输入的情况下获取所有输入呢?
谢谢
实际上,您需要在隐藏中维护计数器,如果您不想将元素维护为数组,您将在发布表单时获得计数器,否则您可以将元素作为数组放置如下所述:
<input type=text name="inputs[]" />
用数组边界命名输入,例如:
<input type=text name="actioninput[]" />
现在你可以在 POST 或 GET (依赖) 数组中通过它们进行迭代:
print_r($_POST);
假设你的JSFiddle工作正常,以下是步骤。
1)获取$_POST
的钥匙。
2) 从键获取最大计数器值。
3)从0
到count of post
进行一个for循环。
4)如果计数器0
,没有后缀,否则,添加计数器作为后缀。
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];
}
}
将
name=actionInput
替换为name=actionInput[]
它应该是一个同名的数组同样的事情将适用于动态生成的所有表单字段,您需要其值。
在添加行 jquery 事件中更改此行返回名称 + i 返回名称
从中删除 i,然后名称=操作输入[]
print_r($_POST);
它将提供动作输入数组