簡體   English   中英

如何在Codeigniter中插入多個發票值

[英]How to insert multiple invoice values in codeigniter

我在codeigniter中有一個具有以下布局的表單:

<input type="text" name="product">`<input type="text" name="cost">`

表單中有幾行具有相同的輸入名稱。 在這里嘗試了一些建議,例如批處理創建此線程,但沒有解決

<input type="text" name="product[]">
<input type="text" name="cost[]">

控制器:

function insertData() {
    $product = $this->input->post('product');
    $cost = $this->input->post('cost');

    foreach($product as $key=>$val){

     $data = array(
        'product'     =>$val,
        'cost'  =>$cost[$key]

        );

    }
   $this->db->insert_batch('table_name', $data); 
}

使用相同文本框名稱的數組進行批量插入

insert_batch函數一次將多個數據插入codeigniter中的表

查看頁面

<form action="<?=base_url('Test_c/insert_data')?>" method="post">
            <div class="col-sm-12">
                <input type="text" name="product[]"><input type="text" name="cost[]">
            </div>
            <div class="col-sm-12">
                <input type="text" name="product[]"><input type="text" name="cost[]">
            </div>
            <div class="col-sm-12">
                <input type="text" name="product[]"><input type="text" name="cost[]">
            </div>
            <div class="col-sm-12">
                <input type="text" name="product[]"><input type="text" name="cost[]">
            </div>
            <div class="col-sm-12">
                <input type="text" name="product[]"><input type="text" name="cost[]">
            </div>
            <input type="submit" name="submit" value="submit">
        </form>

控制器功能

function insert_data() {
            $product = $this->input->post('product');
            $cost = $this->input->post('cost');
            $insert_array = array();
            for ($i=0; $i < count($product); $i++) {
                $tmp = array();
                $tmp['product'] = $product[$i];
                $tmp['cost'] = $cost[$i];
                $insert_array[] = $tmp;
            }

            $this->db->insert_batch('test', $insert_array);
            //echo $this->db->last_query();
    }

您需要像這樣創建一個post數組:

<input type="text" name="product[]">
<input type="text" name="cost[]">

然后,您可以foreach您的文章和insert_batch或幾個普通的insert();。

視圖

 <input type="text" name="product[]"><input type="text" name="cost[]">

控制者

$arrayOne = $this->input->post('product'); //array(1,2,4);
$arrayTwo = $this->input->post('cost'); //array(22,44,55);
$c = array_combine($arrayOne,$arrayTwo ); // output:array(1=>22,2=>44,4=>55)

foreach($c as $key=>$val){

  $data = array(
     'product_id' => $key ,
     'cost' => $val 
  );

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

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM