在codeigniter插入多复选框值 [英] Inserting multiple checkbox values in codeigniter

查看:206
本文介绍了在codeigniter插入多复选框值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在同一个ID多重插入复选框。我的表是这样的:

  ID id_fleet unit_id
1 CAO27
2 1 CA098
3 2 CA078

在一个形式提交我选择id_fleet 1和我检查2 unit_id。我尝试用我的code只救一个检查。

这是我的控制器code:

  $舰队= $这个 - >输入 - >后期('id_fleet');
            $ unit_id = $这个 - >输入 - >后期('unit_id');            $记录=阵列();            为($ I = 0; $ I<计数(unit_id $); $ I ++){
                $数据=阵列(
                    id_fleet'=> $舰队,
                    unit_id'=> $ unit_id
                );                array_push($记录,$数据);
            }            $查询= $这个 - > database_three->查询(选择
                COUNT(id_fleet_member)从fleet_member单位
                其中,id_fleet ='$舰队');
            $ ANS = $查询 - >排();            如果($ ans->部> 0)
            {
                $这个 - >会话级> set_flashdata(信息,generateErrorMessage(数据gagal ditambah'));
                重定向(SITE_URL('fleet_member'));
            }
            其他
            {
                为($ I = 0; $ I<的sizeof($数据['unit_id']); $ I ++){
                    $查询=插入fleet_member(id_fleet,unit_id)VALUES(''[id_fleet'],'$数据['unit_id] [$ i]。'$的数据。'');
                    $这个 - >会话级> set_flashdata(信息,generateSuccessMessage(数据berhasil ditambah'));
                    重定向(SITE_URL('fleet_member'));
                }            }

这是我的模型:

 函数add_fleet_member($数据)
    {
        $这个 - > database_three->插入($这个 - > tbl_fleet_member,$数据);
        如果(这 - $> database_three-> affected_rows()→1)
        {
            返回true;
        }其他{
            返回false;
        }
    }

这是考虑到:

 < D​​IV CLASS =复选框>
       ?< PHP的foreach($ unit_list为$数据):>?
       <标签>
          <输入类型=复选框NAME =unit_id []VALUE =< PHP的echo $数据 - > unit_id>>< PHP的echo $数据 - > unit_id&GT?;
       < /标签>
        <?PHP endforeach>
< / DIV>

您可以帮我为什么我的code只能保存一个值复选框?

感谢您


解决方案

  $舰队= $这个 - >输入 - >后期('id_fleet');
            $ unit_id = $这个 - >输入 - >后期('unit_id');            $记录=阵列();            为($ I = 0; $ I<计数(unit_id $); $ I ++){
                $记录[] =阵列('id_fleet'=> $舰队,'unit_id'=> $ unit_id [$ i]);
            }            $查询= $这个 - > database_three->查询(选择
                COUNT(id_fleet_member)从fleet_member单位
                其中,id_fleet ='$舰队');
            $ ANS = $查询 - >排();            如果($ ans->部> 0)
            {
                $这个 - >会话级> set_flashdata(信息,generateErrorMessage(数据gagal ditambah'));
                重定向(SITE_URL('fleet_member'));
            }
            其他
            {                的foreach($记录为$关键=> $值){
                    $查询=插入fleet_member(id_fleet,unit_id)VALUES('$值。['id_fleet'],'$值。['unit_id']。'。');
                    $这个 - > DB-GT&;查询($查询);
                }
                $这个 - >会话级> set_flashdata(信息,generateSuccessMessage(数据berhasil ditambah'));
                重定向(SITE_URL('fleet_member'));
            }

I want to make multiple insert checkbox in same ID. I have table like this:

id  id_fleet unit_id
1    1       CAO27
2    1       CA098
3    2       CA078

in one form submit I select in id_fleet 1 and I check 2 unit_id. I try with my code it only save one check.

this is my code in controller:

$fleet = $this->input->post('id_fleet');
            $unit_id = $this->input->post('unit_id');

            $records = array();

            for ($i=0; $i < count($unit_id) ; $i++) { 
                $data = array(
                    'id_fleet' => $fleet,
                    'unit_id' => $unit_id
                );

                array_push($records, $data);
            }

            $query = $this->database_three->query("select
                count(id_fleet_member) as unit from fleet_member 
                where id_fleet = '$fleet'");
            $ans = $query->row();

            if ($ans->unit > 0)
            {
                $this->session->set_flashdata('message', generateErrorMessage('Data gagal ditambah'));
                redirect(site_url('fleet_member'));     
            }
            else
            {
                for ($i=0; $i <sizeof($data['unit_id']) ; $i++) { 
                    $query = "insert into fleet_member (id_fleet, unit_id) values ('".$data['id_fleet']."','".$data['unit_id'][$i]."')";
                    $this->session->set_flashdata('message', generateSuccessMessage('Data berhasil ditambah'));
                    redirect(site_url('fleet_member'));
                }

            }

this is my model:

function add_fleet_member($data)
    {
        $this->database_three->insert($this->tbl_fleet_member, $data);
        if ($this->database_three->affected_rows() > 1)
        {
            return true;
        }else{
            return false;
        }
    }

and this is in view:

<div class="checkbox">
       <?php foreach ($unit_list as $data) :?>
       <label>
          <input type="checkbox" name="unit_id[]" value="<?php echo $data->unit_id ?>"><?php echo $data->unit_id ?>
       </label>
        <?php endforeach?>
</div>

can you help me why my code only save one value checkbox?

thank you

解决方案

            $fleet = $this->input->post('id_fleet');
            $unit_id = $this->input->post('unit_id');

            $records = array();

            for ($i=0; $i < count($unit_id) ; $i++) { 
                $records[] = array('id_fleet' => $fleet,'unit_id' => $unit_id[$i]);
            }

            $query = $this->database_three->query("select
                count(id_fleet_member) as unit from fleet_member 
                where id_fleet = '$fleet'");
            $ans = $query->row();

            if ($ans->unit > 0)
            {
                $this->session->set_flashdata('message', generateErrorMessage('Data gagal ditambah'));
                redirect(site_url('fleet_member'));     
            }
            else
            {

                foreach ($records as $key => $value) {
                    $query = "insert into fleet_member (id_fleet, unit_id) values ('".$value['id_fleet']."','".$value['unit_id']."')"; 
                    $this->db->query($query);
                }
                $this->session->set_flashdata('message', generateSuccessMessage('Data berhasil ditambah'));
                redirect(site_url('fleet_member'));
            }

这篇关于在codeigniter插入多复选框值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆