duanlao6573 2017-03-01 06:59
浏览 47
已采纳

如何在codeigniter中的一列中插入多个字段数据

I have a form consist of multiple checkbox and input fields, I want to insert that data into a single column of a table, here is my form:

 <div id="container">
        <h1>property Detail</h1>
    <form action="" method="post">
    <table>
    <tr>
    <td> 
    Possesion
    <input type="checkbox" name="feature[]" value="possesion">
    </td>
    <td> 
    Possesion1
    <input type="checkbox" name="feature" value="possesion1">
    </td>
    <td> 
    Possesion2
    <input type="checkbox" name="feature" value="possesion2">
    </td>
    <td> 
    Possesion3
    <input type="checkbox" name="feature" value="possesion3">
    </td>
    <td> 
    Possesion4
    <input type="checkbox" name="feature" value="possesion4">
    </td>
    </td>
    </tr>

    <tr> 
    <td> <input type="submit" name="submit" value="submit"></td>
    </tr>
    </table>
    </form>

    </div>

here is my controller:

 function index(){
            $this->load->view('form');

            if($_POST){


            $data_feature  = array (
           'feature' => $_POST['feature']
             );

            $data['var']= $this->Mdata->p_detail($data_feature);
            }   

        }

and here is my model:

   function p_detail($data_feature){
             $this->db->insert('feature',$data_feature);
             return $this->db->insert_id();


}

I am getting only one feature value in my table, I want to get all the values of check boxes which user checked.

Regards

  • 写回答

5条回答 默认 最新

  • douxu0550 2017-03-01 07:22
    关注

    Best way to save it is json_encode to make the data in json string.There are many methods to save data like this:

    Firstly correct the html to make all same name fields as array like:

    <input type="checkbox" name="feature[]" value="possesion">
    

    Method 1:

    Make your data as json string to save:

    $this->db->insert('feature',json_encode($data));//data is an array need to insert()
    

    Method 2:

    Make your data as serialize array:

    $this->db->insert('feature',serialize($data));
    

    Method 3:

    Make your data array as string:

    $this->db->insert('feature',implode(",",$data));
    

    And if you want to row by row insertion then iterate posted values over loop like below:

    function index(){
    
                $this->load->view('form');
    
                if($_POST){
    
                    $data_feature  = $_POST['feature'];
    
                    $data = [];
                    foreach($data_feature as $f_key => $f_value){
    
                        $data[$f_key]['var']= $this->Mdata->p_detail($f_value);
    
                    }
    
                }   
    
            }
    

    And your modal use as;

    function p_detail($data_feature){
    
                 $this->db->insert('feature',$data_feature);//inserts into a single column 
                 return $this->db->insert_id();//returns last inserted id
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 docker 运行OPEN-webui异常
  • ¥15 基于ruoyi后台的小程序是二次开发还是原生开发
  • ¥15 麒麟系统如何删除光盘刻录痕迹
  • ¥15 recipe通过gem协议传的是什么
  • ¥15 TS2307: Cannot find module 'cc'.
  • ¥15 100小时学会sap 书上pp章节5.22,标准成本计算逻辑?
  • ¥50 达梦数据库误删日志文件重做DAMENG01.log启动仍然-712错误
  • ¥15 cellranger化学处理类型报错
  • ¥15 用texstudio插入图片出现下面情况,怎么办
  • ¥15 ubantu 用samba挂载windows的共享文件夹,无法挂载二级目录和修改文件