php - 在codeigniter中插入多行mysql

标签 php jquery codeigniter

我正在尝试使用 Codeigniter 一次插入多行

我的 codeigniter View 的 html 代码

     <?= form_open(base_url() . 'home/create') ?>
            <tbody>

                <tr>
                    <td class="col-md-1 center-block">
                        <input type="text" name="id[]" value="1" class="form-control" />
                    </td>
                    <td>
                        <input type="text" placeholder="enter descreption" class="form-control" name="desc[]" />
                    </td>
                    <td class="col-md-2 center-block">
                        <input id="space"  onkeyup="sumPrice()" type="number" class="form-control" name="space[]" />
                    </td>
                    <td> 
                        <select onchange="sumPrice()" class="selectpicker price" data-live-search="true" data-width="100%" name="price[]" data-header="Select cost"> 
                            <option value="5">5</option> 
                            <option value="10">10</option>
                            <option value="20">20</option>
                        </select>
                    </td> 
                    <td class="total_price col-md-1">
                        <input type="number" class="form-control" name="total[]" value="1000" />
                    </td> 
                    <td>
                        <button class="btn btn-danger center-block  remove-row"><span class="glyphicon glyphicon-remove"></span> Remove</button>
                    </td>
                </tr>
            </tbody>
        </table>
        <input type="submit" value="insert" class="btn btn-success" />
    </form>
    <button class="btn btn-success append-row"><span class="glyphicon glyphicon-plus-sign"></span> Add new row</button>

我正在使用 jQuery 在表中插入新行 这是js代码

    $('.append-row').click(function() {
    $("table tbody").append
    ('<tr><td class="col-md-1 center-block"><input type="text" name="id[]" value="' + row_id_val++ + '" class="form-control" /></td> <td><input type="text" placeholder="enter descreption" class="form-control" name="desc[]" /></td> <td class="col-md-2 center-block"><input id="space"  onkeyup="sumPrice()" type="number" class="form-control" name="space[]" /></td> <td> <select onchange="sumPrice()" class="selectpicker price" data-live-search="true" data-width="100%" name="price[]" data-header="Select Sub account" onselect="sumPrice()" > <option onselect="sumPrice()" value="5">5</option> <option onselect="sumPrice()" value="10">10</option> <option onselect="sumPrice()" value="20">20</option> </select> </td> <td class="total_price col-md-1"><input type="number" class="form-control" value=""  name="total[]" /></td> <td><button class="btn btn-danger center-block  remove-row"><span class="glyphicon glyphicon-remove"></span> Remove</button></td></tr>');
    $('.selectpicker').selectpicker('refresh');
});

我的 Controller

if ($_POST) {
    $data = array();
    for ($i = 0; $i < count($this->input->post('id')); $i++) {
        $data[$i] = array(
            'row_id' => $this->input->post('id')[$i],
            'desc' => $this->input->post('desc')[$i],
            'space' => $this->input->post('space')[$i],
            'price' => $this->input->post('price')[$i],
            'total' => $this->input->post('total')[$i],
            'code' => time()
        );
    }
    $this->Home_model->create($data);
}

型号

function create($data) {
    $this->db->insert_batch('quotation', $data);
}

我从 stackoverflow 尝试了太多解决方案,但没有一个有效

最佳答案

您可以尝试下面给出的代码吗?我认为 $data 可能有问题。

if ($_POST) {
        $data = array();
        for ($i = 0; $i < count($this->input->post('id')); $i++) {
            $data[] = array(
                'row_id' => $this->input->post('id')[$i],
                'desc' => $this->input->post('desc')[$i],
                'space' => $this->input->post('space')[$i],
                'price' => $this->input->post('price')[$i],
                'total' => $this->input->post('total')[$i],
                'code' => time()
            );
        }
        $this->Home_model->create($data);
    }

关于php - 在codeigniter中插入多行mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29316594/

相关文章:

c# - Telerik RadGrid-向 GridEditCommandColumn 添加 javascript 方法

jQuery:如何获取 html 属性的值?

php - 获取sql错误PHP

javascript - 通过 JS 清除 cookie,但 PHP 仍然检测到它

php - 我可以在 CodeIgniter 2.1 中 __destruct() 库对象吗?

PHP strtotime() 看起来需要欧元格式

jquery - 如何使用 Jquery 设置非标准的 css 属性?

php - 是否使用 PHP 框架?

php - 模型数组的 Codeigniter 错误

php - 在 PHP 中按数组键的值对字典中的数组进行排序