在数据库中提交数组类型输入文件

时间:2018-03-19 06:14:25

标签: php mysql arrays codeigniter

我有一个表单,其中有两个字段:“product_name”和“product_q”,在我的表单中,我可以选择增加product_nameproduct_q

中的字段数
 <select name="product_name[]" id="product_name">
 <option value="please select"></option> 
 <option value="1">demo1</option> 
 <option value="2">demo2</option> 

 </select>

<select name="product_q[]" id="product_q">
 <option value="please select"></option> 
 <option value="1">1</option> 
 <option value="2">2</option> 

 </select>

之类的操作页面
 public function order(){


    $Product_q = $this->input->post('quantity');
    $sponserid = $this->session->userdata('number');
    $pname['product_name'] = $this->input->post('product_name');
    foreach($Product_q as $key => $value){
    $data['Product_q'] = $value;
    $data['Product_Name'] = $pname['product_name'][$key]; 
    $this->mymodel->insert_items($data);

    }

和我的模特

function insert_items($data){
    $this->db->insert("lucky_order", $data);
    return;

}

请帮助插入数据库我的表单如下:

包含一个字段的FORM
FORM with one field

表格有两个字段
form with two field

2 个答案:

答案 0 :(得分:0)

我们不能将数组直接插入数据库,所以在将数据插入数据库之前我们需要将数组编码为json。您可以按照<?php json_encode($data); ?>进行操作 然后你想要获取这些数据然后你可以使用以下方法<?php json_decode($data); ?>

简单地将数据解码回数组

答案 1 :(得分:-1)

你可以试试这个:

<select name="product_name[]" class="product_name">
 <option value="please select"></option> 
 <option value="1">demo1</option> 
 <option value="2">demo2</option> 

 </select>

<select name="product_q[]" class="product_q">
 <option value="please select"></option> 
 <option value="1">1</option> 
 <option value="2">2</option> 

 </select> 
<input type="hidden" name="product_count" value="1" />



You have to increment /decrement the product_count value on addition 
or removal or product 
控制器

 loop your function in model for inserting into database 

对于product_count的次数 以及使用$ key的每个值  像这样的东西:

        for ($i=0; $i<$_POST['product_count']; $i++){

通过使用上面$ i变量传递每个值来调用insert函数。     喜欢

         $_POST['product_name'][$i]; 

this will get you your first product name similarly for all 
   and you can call the model function and pass the above values each 
time with incremented value of $i