使用Codeigniter将复选框值传递给mysql数据库

时间:2012-01-11 05:43:39

标签: mysql codeigniter

我正在使用CodeIgniter和mySQL来构建一个复选框表单。表格包含4个选项;每个选项只有一个复选框;用户可以选择任何选项组合。我想做以下事情:

1 - 对于每个复选框,使用值1(如果未选中)或2(如果选中)并将这些值传递到数据库(每个复选框都有自己的字段)。现在,无论是选中还是未选中,复选框都会将值0发送到数据库。

2 - 一旦用户更新了他们的复选框,我想更新数据库以反映新值。现在,每次更新复选框都会添加一个新行。

到目前为止我所获得的是一个将复选框值提交给数据库,控制器和模型的表单:

表格

<?php echo form_open('addFoo'); ?>
<input type="checkbox" name="foo1" value="" />
<input type="checkbox" name="foo2" value="" />
<input type="checkbox" name="foo3" value="" />
<input type="checkbox" name="foo4" value="" />
<?php echo form_submit('submit', 'Save Changes'); ?>
<?php echo form_close(); ?>

控制器

function addFoo()
{
    if ($this->input->post('submit')) {
        $id = $this->input->post('id');            
                $foo1 = $this->input->post('foo1');
                $foo2 = $this->input->post('foo2');
                $foo3  = $this->input->post('foo3');
                $foo4  = $this->input->post ('foo4');

    $this->load->model('foo_model');
    $this->foo_model->addFoo($id, $foo1, $foo2, $foo3, $foo4);
    }
}

模型

function addFoo($id, $foo1, $foo2, $foo3, $foo4) {
        $data = array(
            'id' => $id,
            'foo1' => $foo1,
            'foo2' => $foo2,
            'foo3' => $foo3,
            'foo4' => $foo4
        );

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

3 个答案:

答案 0 :(得分:3)

在您的控制器:

如果要为所有选中的复选框插入新条目:

foreach($this->input->post('foo') as $r)
{
 $data['fieldname']=$r;

 $this->model_name->insert($data);
}

如果要在单个条目中的不同字段中插入所有选中的复选框值,则

foreach($this->input->post('foo') as $key=>$val)
    {
     $data['field'.$key]=$val;

    }
$this->model_name->insert($data);

答案 1 :(得分:1)

参考设置值,如果未选中,则复选框不会发送任何内容。为了实现你想要的,你必须这样做:

<input type="checkbox" name="foo[]" value="1" />
<input type="checkbox" name="foo[]" value="2" />

无论是否选中该复选框,都会发送一个值。

答案 2 :(得分:1)

使用每个复选框的不同值并获取checkbox数组的值,并在控制器print_r($this->input->post('foo'));中使用它,它将打印用户选择的值

像这样使用

<?php
    if (isset($_POST['submit'])){
        print_r($_POST['foo']);
    }
?>
<form action="" method="POST">
<input type="checkbox" name="foo[]" value="1">1<br>
<input type="checkbox" name="foo[]" value="2">2<br>
<input type="checkbox" name="foo[]" value="3">3<br>
<input type="checkbox" name="foo[]" value="4">4<br>
<input type="submit" value="submit" name="submit">
</form>