1

嗨,我正在使用 codeigniter。我有一个表格,我在那里动态添加隐藏字段。所以每个隐藏的字段都是<input type='hidden' name='hidden' value="+$(this).attr('title')+"> 这样的,名字是一样的。

问题是当我提交表单并尝试获取隐藏字段值时,我只能获得一个隐藏字段值,因为名称相同

我打印我的表单值

print_r($this->input->post());

我有 2 个隐藏字段,但我只有一个

Array
(
    [hidden] => march
    [textbox] => march
    [mysubmit] => Submit
)

我可以在创建时动态更改隐藏字段的名称,但是我不知道我的隐藏字段的确切名称,

如何获得具有相同名称的隐藏字段值?除了按名称获取表单值之外,还有其他方法吗?我试过了,找不到答案,请帮助......

4

1 回答 1

3

您需要在name属性中使用括号:

<input type='hidden' name='hidden[]'>
<!--                            ^^^^                                   -->

这将允许 PHP 接受多个与值数组同名的输入,因此在这种情况下,$_POST['hidden']将返回一个字符串数组。

默认情况下,它们从 0 开始编入索引,因此$_POST['hidden'][0]将获得第一个,$_POST['hidden'][1]将获得第二个,等等 - 如果对您来说更容易,您可以使用数字或字符串显式索引它们。

<input type='hidden' name='hidden[first]'>
<input type='hidden' name='hidden[second]'>

或者:

<input type='hidden' name='hidden[0]'>
<input type='hidden' name='hidden[1]'>

您可以将它们嵌套到任意深度,hidden[first][1][]当您获取值时,它们将被视为类似于 PHP 数组$_POST,但您需要 HTML 中的括号。

$_POST如果没有括号,数组中只有最后一个字段的值可用。这是一个 PHP 特性,Codeigniter 对此无能为力。

于 2011-08-17T11:05:36.857 回答