2011-12-18 53 views
0

我正在关注nettut+ tutorial进行分页,并将POST输入存储为db中的查询字符串。到目前为止,一切工作正常,直到,假设如果我得到一个数组作为POST输入,我无法循环它并获取所有的数组值并存储到query_array(即数组中的存储数组)。CodeIgniter:在数组内使用数组

下面的片段:

$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 

知道的任何帮助..

感谢。

回答

0

看起来像代码ignighter支持未命名的多维数组作为输入没有一点黑客攻击。

如果可以访问原始$ _ POST数据尝试

array_map('intval',$_POST['citizenship']) 

更换

$this->input->post('citizenship') 

Alternativly键添加到您的文章数据:

&gender=1&minage=18&maxage=24&Citizenship[0]=2&Citizenship[1]=4&Citizenship[2]=6 
+0

谢谢crolpa,它的工作原理! – prajan55 2011-12-19 18:19:29

0

我固定它自己。我刚刚通过POST数组并获得了单个数组密钥&对值。

foreach($_POST['Citizenship'] as $k => $v) { 
    $Citizenship[$v] = $v; 
} 

希望这可以帮助遇到类似问题的人。