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

Jos*_*ody 3 php foreach codeigniter

我已经在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);
}
Run Code Online (Sandbox Code Playgroud)

目前,显然,我的控制器获取每个输入的值,在其唤醒中写入先前的值,只留下最终值的字符串.但是,我需要存储这些,所以我可以在后续页面上打印它们.

我想我想做的是扩展输入类,以便能够调用$ this-> input-> posts('goal').最终,我需要将其他数组存储到会话值.但我完全乐于接受实施建议.

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

Tee*_*eej 6

你想在你的表单中使用它:

<input type="text" name="goal[]">
Run Code Online (Sandbox Code Playgroud)

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

$goal = $this->input->post('goal');
Run Code Online (Sandbox Code Playgroud)

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

$this->session->set_userdata('goal', $goal);
Run Code Online (Sandbox Code Playgroud)

如果要再次检索它.这样做:

$goal = $this->session->userdata('goal');
Run Code Online (Sandbox Code Playgroud)

你会有这样的事情:

$goal[0] = 'first goal';
$goal[1] = 'second goal';
Run Code Online (Sandbox Code Playgroud)

请先试试:)