在CodeIgniter会话中存储具有相同名称的多个输入

时间:2010-05-19 00:40:24

标签: php codeigniter foreach

我发布了这个in the CodeIgniter forum并且也耗尽了论坛搜索引擎,所以如果不赞成交叉发布,请道歉。

基本上,我有一个输入,设置为<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-&gt; input-&gt; posts('goal')。最终,我需要将其他数组存储到会话值。但我完全乐于接受实施建议。

非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:6)

您希望在表单中使用此功能:

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

然后,您可以通过以下方式获取Controller中的值:

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

然后通过以下方式在会话中设置变量:

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

如果您想再次检索它。通过以下方式做到这一点:

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

你会有这样的事情:

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

请先尝试一下:)