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 爬知乎登录之后内容加载不出来
  • ¥15 怎么用protues测量通频带
  • ¥15 zepelin使用sparkInterpreter 异常
  • ¥15 paho mqtt 接收不到消息
  • ¥15 函数r关于两个分量y,z方向上的图像,分开画r随y的图像,r随z的图像
  • ¥15 如何用Matlab求Pearcey函数的数值积分?
  • ¥15 一个简单的函数定义问题,输出结果是相反的,怎么回事呢?
  • ¥15 页面加载报错,不知道怎么处理
  • ¥20 vue-draggable-resizable选中状态保持
  • ¥15 flink cdc读取SqlServer2016