2010-05-19 119 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

相关问题