首页 > 解决方案 > 如何使用codeigniter将多个复选框值插入数据库

问题描述

我创建了一个用于查询客户、类别和子类别的联系表格我是使用复选框创建的,它是手风琴功能的格式,子功能是复选框,我使用插入查询来存储数据库,但我可以'不插入带有子特征的近似特征。这里有三个表,例如'iv_mail'、iv_mail_features'、'iv_mail_subfeatures`。显示在代码下方

$data=array('name'=>$this->input->post('sendname'),
            'lastname'=>$this->input->post('sendlname'),
            'mobile'=>$this->input->post('sendphone'),
            'location'=>$this->input->post('sendlocation'));
$this->db->insert('iv_mail',$data);
$insert_id=$this->db->insert_id();
foreach($this->input->post('features') as $feature){
    $data=array('mail_id'=>$insert_id,
                'featurename'=> $feature);
    $this->db->insert('iv_mail_features',$data);
    $sub_id=$this->db->insert_id();
    foreach($this->input->post('sub_feature') as $subfeature){
        $data=array('feature_id'=>$sub_id,
                    'subfeaturename'=> $subfeature);
        $this->db->insert('iv_mail_subfeatures',$data);
    }
}    

在这里我使用了 insert_id,任何人都可以帮助我

标签: phpmysqlcodeigniter

解决方案


您必须将所有复选框命名为这样的数组。

<input type="checkbox" name="checkbox[]" value="add"><hr>
<input type="checkbox" name="checkbox[]" value="edit"><hr>
<input type="checkbox" name="checkbox[]" value="update"><hr>
<input type="checkbox" name="checkbox[]" value="delete">

那么在你的函数中必须是这样的

$inputnum = count($this->input->post('checkbox'));
for ($i=0;$i < $inputnum; $i++) {
     echo $this->input->post('checkbox')[$i].'<hr>';
}

您可以根据需要更改代码。

json此外,您可以像这样在一列中添加所有功能

$inputnum = count($this->input->post('checkbox'));
for ($i=0;$i < $inputnum; $i++) {
    $checkbox[] = $this->input->post('checkbox')[$i].'<hr>';
}
json_encode($checkbox);

推荐阅读