将复选框值保存到codeigniter中的数据库

时间:2013-12-11 06:36:34

标签: php html mysql codeigniter

我似乎无法将复选框值保存到数据库,这是他们在下面给出的代码中缺少的东西。帮助我解决方案,如在使用下面给出的代码我似乎只保存特定的复选框值而不是检查每个复选框值。

视图

 Subject :
<input type="checkbox" id="s2" name="s2" value="English">English
<input type="checkbox" id="s2" name="s2" value="Science">Science
<input type="checkbox" id="s2" name="s2" value="Maths">Maths

控制器

  $data['subject'] = $this->input->post('s2');

模型

  $this->db->insert('student', $data);

6 个答案:

答案 0 :(得分:0)

<input type="checkbox" id="s2" name="s2[]" value="English">English
<input type="checkbox" id="s2" name="s2[]" value="Science">Science
<input type="checkbox" id="s2" name="s2[]" value="Maths">Maths

将它们分组并在控制器中取值,如下所示

$data['course'] = $this->input->post('s2');

答案 1 :(得分:0)

试试这个... s2=>s2[]

<input type="checkbox" id="s2" name="s2[]" value="English">English
<input type="checkbox" id="s2" name="s2[]" value="Science">Science
<input type="checkbox" id="s2" name="s2[]" value="Maths">Maths

控制器

if(!empty($this->input->post('s2')) {
    $data['course'] = $this->input->post('s2');

    foreach($data['course'] as $value)
    {
        echo 'Checked: '.$value;
    }
}

答案 2 :(得分:0)

可能只是一个拼写错误,但您引用...post('s1')但所有复选框都有名称s2,请记住,如果输入字段共享相同的名称,则会在服务器端创建一个数组:so结构看起来有点像这样:

$_POST => array(
  s2 => array(
    "English",
    "...",
  )
  ...
)

另外,请记住必须选中一个复选框,以便将其值提交给服务器

答案 3 :(得分:0)

$this->input->post从名称中读取值而不是来自id。

所以你的代码应该是这样的

$data['course'] = $this->input->post('s2');

答案 4 :(得分:0)

要提交具有相同名称的输入组,您必须使用name="s2[]"[]表示以数组形式提交输入。

因此,在php中,您将$_POST['s2'][0]作为序列后面的第一个检查主题,依此类推,即$_POST['s2'][0]为英语,$_POST['s2'][1]为Science AND $_POST['s2'][2] as数学,如果检查了所有输入。

另外,我不太确定“{1}”中的“s1”是做什么的,你不是想用“s2”做行动吗?

希望这可以提供帮助

答案 5 :(得分:0)

感谢所有答案,但我得到了解决方案......

控制器

    $array = $this->input->post('s2');
    $data['subject'] = implode(',',$array);
    $this->student_model->saveForm($data);

查看

主题:

<input type="checkbox" id="s2" name="s2[]" value="English">English
<input type="checkbox" id="s2" name="s2[]" value="Science">Science
<input type="checkbox" id="s2" name="s2[]" value="Maths">Maths