2010-05-19 112 views
3

我已經發布了這個in the CodeIgniter forum,並用盡了論壇搜索引擎,所以如果交叉發佈不被理睬,我們會很抱歉。在CodeIgniter會話中存儲多個具有相同名稱的輸入

基本上,我有一個輸入,設置爲<input type="text" name="goal">。根據用戶的請求,他們可能會添加另一個目標,這會向DOM拋出一個副本。我需要做的是在CodeIgniter控制器中獲取這些值並將它們存儲在會話變量中。我的控制器當前構建正是如此:

function goalsAdd(){ 
    $meeting_title = $this->input->post('topic'); 
    $meeting_hours = $this->input->post('hours'); 
    $meeting_minutes = $this->input->post('minutes'); 
    $meeting_goals = $this->input->post('goal'); 
    $meeting_time = $meeting_hours . ":" . $meeting_minutes; 

    $sessionData = array(
     'totaltime' => $meeting_time, 
     'title' => $meeting_title, 
     'goals' => $meeting_goals 
    ); 

    $this->session->set_userdata($sessionData); 
    $this->load->view('test', $sessionData); 
} 

目前,很明顯,我的控制器獲取每一個輸入的值,書寫了在其身後以前的值,只留下終值的字符串。但是,我需要保存這些內容,以便在後續頁面上打印它們。

我想我很想做的就是擴展輸入類,以便能夠調用$ this-> input-> posts('goal')。最終,我需要將其他數組存儲爲會話值。但我完全接受實施建議。

非常感謝您給予的幫助。

回答

6

你想使用這個在您的形式:

<input type="text" name="goal[]"> 

您可以然後通過獲得控制器的值:

$goal = $this->input->post('goal'); 

然後設置在通過會話變量:

$this->session->set_userdata('goal', $goal); 

如果你想再次檢索它。通過此操作:

$goal = $this->session->userdata('goal'); 

你有這樣的事情:

$goal[0] = 'first goal'; 
$goal[1] = 'second goal'; 

請首先嚐試:)

+0

索普,非常感謝您抽出時間來回答。這實際上就是我現在所擁有的,但似乎每一個連續的目標都會重寫先前的目標,而最終的目標只會以最終的價值結束。這有意義嗎?在名稱值末尾的方括號以某種方式與我不知道的方式對抗? – 2010-05-19 01:23:12

+0

它將它變成一個數組......我將更新我的答案。 – 2010-05-19 02:30:43

+0

那怎麼樣。我不知道爲什麼互聯網之前從來沒有告訴過我。非常感謝,索普。我明天會試試這個,並給你適當的評論或複選標記。 – 2010-05-19 05:53:52

相關問題