使用复选框更新批处理,失败

时间:2016-06-15 04:54:30

标签: php codeigniter checkbox

我想使用数组和复选框更新数据。如果选中该复选框,则状态变为" 1"。否则,请留下" 0"。

我尝试过这样的事情

<?php
  foreach($report as $r){;
?>

<input type="checkbox" name="status[]" value="1" value="<?php echo $r->status;?>">
<input type="hidden" name="id_name[]" value="<?php echo $r->id_name;?>">
<input type="hidden" name="name[]" value="<?php echo $r->name;?>">

<?php } ?>

和这个

<input type="checkbox" name="status[]" value="1">
<input type="hidden" name="id_name[]" value="<?php echo $r->id_name;?>">
<input type="hidden" name="name[]" value="<?php echo $r->name;?>">

但即使我检查第三行或第四行,它们都会更新第一行。

我的控制器是这样的

function update_approval() {
            $status = $this->input->post('status');
            $id_name = $this->input->post('id_name');
            $name = $this->input->post('name');
    for($a=0; $a< sizeof ($id_name); $a++) {
                    $data[$a] = array(
                        'status'    => $status[$a],
                        'id_name'   => $id_name[$a],
                        'name'      => $name[$a]
                        );
            }
    $this->db->update_batch('tbl_m_name', $data, 'id_name');
}

提前致谢

2 个答案:

答案 0 :(得分:0)

我已经解决了。谢谢,

我改变了位置,这是我的观点

<input type="checkbox" name="id_name[]" value="<?php echo $r->id_name;?>">
<input type="hidden" name="name[]" value="<?php echo $r->name;?>">

这是我的控制器

function update_approval() {
            $id_name = $this->input->post('id_name');
            $name = $this->input->post('name');
    $data[$a] = array();
    for($a=0; $a< sizeof ($id_name); $a++) {
         $data[] = array(
             'status'    => 1,
             'id_name'   => $id_name[$a],
             'name'      => $name[$a]
             );
         }
    $this->db->update_batch('tbl_m_name', $data, 'id_name');
}

所以,如果我选中该框,它将发布我选择的id_name

答案 1 :(得分:0)

谢谢,但我尝试了你的,我得到了未确定的变量$a。所以,我改变了位置并删除了$data[$a]= array();。以下是我的代码(在解决我的问题后)基于你的代码:

function update_approval() {
    $id_name = $this->input->post('id_name');
    $name = $this->input->post('name');

    for($a=0; $a< sizeof ($id_name); $a++) {
        $data[$a] = array(
            'status'    => 1,
            'id_name'   => $id_name[$a],
            'name'      => $name[$a]
        );
    }
    $this->db->update_batch('tbl_m_name', $data, 'id_name');
}
相关问题