在codeigniter中获取选中的复选框值

时间:2017-03-03 07:58:23

标签: php codeigniter checkbox

我是codeigniter的新手。我想知道如何获取被检查的复选框值。我经历了各种答案,但无法解决。

我将数据库表中的值显示为复选框值。

我的复选框查看代码:

<?php foreach($g->result() as $grp) { ?>
<input type="checkbox" name="mycheck[]" value="<?php  echo $grp->group_id; ?>"<?php echo set_checkbox('mycheck', '$grp->group_id;' ); ?> /><?php  echo $grp->group_name; ?>

我不知道如何只获取控制器中的选中值(即group_id)以及模型中的值,以将其插入数据库中的另一个表格中。

请帮忙。

2 个答案:

答案 0 :(得分:1)

在你看来

   <?php 
   foreach($g->result() as $grp) 
   { 
   ?>
      <input type="checkbox" name="mycheck[]" value="<?php echo $grp->group_id; ?>">
   <?php 
   } 
   ?>

现在在你的控制器功能

if(!empty($this->input->post('mycheck')))
 {
foreach ( $this->input->post('mycheck') as $obj)
    {
        $mycheck[]= $obj; 
    }
 }
 $returnvalue = $this->modelname->samplefn($mycheck); // pass value to model fn

现在在模型函数中使用 where_in 而不是下面的

function samplefn($mycheck)
    {
       $query = $this->db->select('*')
                    ->from('tablename')
                    ->where_in('checkboxcol', $mycheck)
                    ->get();

       if($query->num_rows()>0)
       {
        // echo $this->db->last_query()."<br>";
        return $query->result();  // return an array of objects
       }
       else
       {
        return null;
       } 
    }

在数据库中插入多个值

 function samplefninsert()
    {
      $checkboxes = $this->input->post('mycheck');
      foreach($checkboxes as $obj)
      {
         $this->db->insert('yourtablename',array('yourcheckboxfieldname'=>$obj));
      }
    }

答案 1 :(得分:0)

如果您的表单已成功提交,您应该在控制器中看到一组数据

$this->input->post_get()

在你的情况下寻找

$this->input->post_get('mycheck') 

有关更多信息,请查看CodeIgniter Input Class的文档。