在codeigniter中获取除名称之外的表单值

时间:2011-08-17 10:23:15

标签: codeigniter php codeigniter-form-helper

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

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

我打印我的表单值

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

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

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

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

如何获取具有相同名称的隐藏字段值?有什么方法可以获得除名称之外的表单值?我试过,找不到答案,请帮助.............

1 个答案:

答案 0 :(得分: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][]一样深入嵌套它们,当你得到$_POST值时,它们将被视为类似于PHP数组,但你需要HTML中的括号。 / p>

如果没有括号,$_POST数组中只有最后一个字段的值可用。这是一个PHP功能,Codeigniter无法做任何事情。