2011-12-18 52 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; 
} 

希望這可以幫助遇到類似問題的人。