将动态html表格数据保存到数据库codeigniter 3

问题描述 投票:0回答:1

以下是我的视图文件中的部分。

<div class="table-responsive">
                            <table class="table table-bordered" id="dynamic_field">
                                <tr>
                                    <td><input type="text" name="description[]" placeholder="Enter your Description" class="form-control name_list" required="" /></td>
                                    <td><input type="text" name="price[]" placeholder="Enter your Price" class="form-control name_list" required="" /></td>
                                    <td><button type="button" name="add" id="add" class="btn btn-success">Add More</button></td>
                                </tr>
                            </table>
                        </div>

这是我的模型

$query_status = $this->db->insert('events', $register_data_array);
    $event_insert_id=$this->db->insert_id();
    //insert the event ticket prices
    $price_description = $_POST['description'];
    $price = $_POST['price'];
    if ( ! empty($price_description) && ! empty($price) )
    {
        foreach ($price_description as $key => $value) {
            $data['event_id'] = $event_insert_id;
            $data['price_description'] = $value;
            $data['price'] = $price[$key];
            $this->db->insert('event_ticket_prices',$data[]);
        }

        $this->db->trans_complete();
        return true;
    }

insert_id是表单上静态信息的最后一个插入ID。这些可以毫无问题地保存,但对于动态故事我收到错误。

codeigniter dynamic-tables
1个回答
0
投票

回答 您的插入位置错误。 移动

$query_status = $this->db->insert('events', $register_data_array);
$event_insert_id=$this->db->insert_id();

在foreach之后像这样

foreach ($price_description as $key => $value) {
     $query_status = $this->db->insert('events', $register_data_array);
     $event_insert_id=$this->db->insert_id();
     $data['event_id'] = $event_insert_id;
     ...

这将解决您的问题。

注意:老实说,您的代码似乎编写效率低下,因为执行插入然后更新并不是最好的方法(您应该一次性插入所有数据),但我没有纠正它。此外,您应该始终在每次循环时清空

$data
数组。

© www.soinside.com 2019 - 2024. All rights reserved.