2011-08-17 78 views
1

嗨,我使用codeigniter。我有一個表格,那裏我動態地添加隱藏的字段。所以每個隱藏的字段都是<input type='hidden' name='hidden' value="+$(this).attr('title')+">,所以名稱相同。獲取表單值而不是按名稱在codeigniter

的問題是,當我提交表單,並試圖讓我的隱伏字段值我只能得到一個隱藏字段的值,因爲名字相同

打印我的表單值

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

我有2個隱藏字段,但我只有一次

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

我可以在創建時動態地改變隱藏字段的名稱,但後來我不知道究竟我的隱藏字段的名稱,

我怎樣才能得到隱藏的字段值的同名?有沒有什麼辦法來獲得除名稱以外的表單值?我想並不能找到答案,請大家幫忙.............

回答

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中。

沒有括號,$_POST陣列中只有最後一個字段的值可用。這是一個PHP功能,Codeigniter無法對此做任何事情。

+0

非常感謝你,解決了這個問題:D:D:D – 2011-08-17 11:13:56