我是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)以及模型中的值,以将其插入数据库中的另一个表格中。
请帮忙。
答案 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的文档。