CodeIgniter:在视图中的表单中创建复选框,以便将多个选择作为数组提交
我正在关注 nettut+ 教程 用于分页并将 POST 输入作为查询字符串存储在数据库中。到目前为止,一切正常,直到假设我得到一个数组作为 POST 输入,我无法循环遍历它并获取所有数组值并存储到 query_array 中(即,将数组存储在数组中)。
下面的片段:
$query_array = array(
'gender' => $this->input->post('gender'),
'minage' => $this->input->post('minage'),
'maxage' => $this->input->post('maxage'),
'Citizenship' => $this->input->post('citizenship'), // checkboxes with name citizenship[]
);
这仅返回公民身份中最后存储的数组值。
输出数组:
Array ( [gender] => 1 [minage] => 18 [maxage] => 24 [Citizenship] => 2 )
使查询字符串为:
&gender=1&minage=18&maxage=24&Citizenship=2
但是,我的要求是获取“公民身份”数组的所有值而不是最后存储的值。
生成查询字符串所需的输出:
Array ( [gender] => 1 [minage] => 18 [maxage] => 24 [Citizenship] => 2 [Citizenship] => 4 [Citizenship] => 6 )
查询字符串:
&gender=1&minage=18&maxage=24&Citizenship[]=2&Citizenship[]=4&Citizenship[]=6
I am following nettut+ tutorial for pagination and to store POST inputs as querystrings in db. So far, everything works fine until, suppose if I get an array as POST input, I am unable to loop through it and get all the array values and to store into query_array (i.e., store array within array).
The snippets below:
$query_array = array(
'gender' => $this->input->post('gender'),
'minage' => $this->input->post('minage'),
'maxage' => $this->input->post('maxage'),
'Citizenship' => $this->input->post('citizenship'), // checkboxes with name citizenship[]
);
This returns only last stored array value in Citizenship.
The output array:
Array ( [gender] => 1 [minage] => 18 [maxage] => 24 [Citizenship] => 2 )
makes the query string as:
&gender=1&minage=18&maxage=24&Citizenship=2
But, my requirement is to get all the values of 'Citizenship' array instead of last stored value.
The output required to make query string:
Array ( [gender] => 1 [minage] => 18 [maxage] => 24 [Citizenship] => 2 [Citizenship] => 4 [Citizenship] => 6 )
The query string :
&gender=1&minage=18&maxage=24&Citizenship[]=2&Citizenship[]=4&Citizenship[]=6
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看起来代码点火器不支持未命名的多维数组作为输入,而无需进行任何黑客攻击。
如果您可以访问原始 $_POST 数据,请尝试替换
为
或者将密钥添加到您的发布数据中:
Doesn't look like code ignighter supports un-named multidimensional arrays as input without a bit of hacking.
If you can access raw $_POST data try replacing
with
Alternativly add keys to your post data:
我自己修好了。我只是循环遍历 POST 数组并获取单独的数组键和对值。
希望这可以帮助面临类似问题的人。
I fixed it myself. I just looped through the POST array and got the individual array key & pair values.
Hope this helps someone who face similar problem.