Php 使用Codeigniter将所选复选框从阵列数据传递到数据库

Php 使用Codeigniter将所选复选框从阵列数据传递到数据库,php,mysql,codeigniter,Php,Mysql,Codeigniter,我是codeigniter的新手。我正在尝试将考勤数据传递到数据库中 这是我的视图代码 <?php $no=1; foreach($employee AS $list_emp) { ?> <tr> <td><?= $no ?></td> <td><input type="hidden" name="employee[]" value="<?php echo $list_emp->sn

我是codeigniter的新手。我正在尝试将考勤数据传递到数据库中

这是我的视图代码

<?php $no=1; foreach($employee AS $list_emp) { ?>
    <tr>
    <td><?= $no ?></td>
    <td><input type="hidden" name="employee[]" value="<?php echo $list_emp->sn; ?>"><?= $list_emp->name; ?></td>
    <td><?= $list_emp->position; ?></td>
    <?php foreach ($attend_detail AS $list) {?>
    <td><input type="checkbox" name="detail[]" value="<?php echo $list['details']"></td>
    <?php } ?>
    <td><input type="text" name="note[]"></td>                      
    <input type="hidden" name="location[]" value="<?php echo $list_emp->branch; ?>">
    </tr>
<?php $no++;} ?>
我只想插入我检查过的员工出勤情况。请帮忙

谢谢你的帮助


抱歉,我的英语不好

请在员工考勤输入名称上添加一个标识符,以便每位员工都有自己唯一的考勤数据集

视图:

    ...
    <td><input type="checkbox" name="detail[<?php echo $no-1 ?>][]" value="<?php echo $list['details']"></td>
    ...

您的
注释
字段在哪里?因为如果它和你的出席名单在同一行-你的数据库结构没有任何意义。。。您的出席人数需要一个m:n关系,但您的备忘只有1:1关系-或者每次出席都应该复制备忘?很抱歉,图片右侧的备忘字段缺少部分图片,如果为空则没有问题。我试过填充便笺,但问题还是一样。没有人能帮我吗?@MardinoIsmail在插入数据库之前,你能打印数组吗answer@saurabhkamble参见图1。像那样?像这样不。。它仅用于
详细信息
仅输入。好啊忘了我的第一句话。我已经像你的代码一样试过了。但现在数据没有插入数据库,我在“stat”行收到错误消息UndefinedOffset。如果我回到办公室,我会告诉你错误的细节。
function insert_attend($data)
{
    $this->db->insert('tb_attend_tes',$data);
}
    ...
    <td><input type="checkbox" name="detail[<?php echo $no-1 ?>][]" value="<?php echo $list['details']"></td>
    ...
function add_attend()
{
    $employee   = $this->input->post('employee');
    $location   = $this->input->post('location');
    $detail     = $this->input->post('detail');
    $note       = $this->input->post('note');
    $total      = count($employee);
    $filtered_detail = array_filter($detail);
    if (empty($filtered_detail) === true) {
        $errors['detail'] = 'please select one';
    }

    if (!empty($errors)){
        $info['success'] = false;
        $info['errors']  = $errors;
    }

    else {
        for ($x=0; $x<$total; $x++){
            $data = array(
                'sn'    => $employee[$x],
                'lab'   => $location[$x],
                'stat'  => (isset($detail[$x]) && !empty($detail[$x])) ? implode(",",$detail[$x]) : '',
                'note'  => $note[$x]
                );          
            $this->m_human_capital->insert_attend($data);
        }

        $info['success'] = true;
    }
    $this->output->set_content_type('application/json')->set_output(json_encode($info));
}