【问题标题】:checkbox value stored in wrong place - php codeigniter复选框值存储在错误的位置 - php codeigniter
【发布时间】:2018-01-31 12:22:58
【问题描述】:

我用两行这些值填充我的 html 表。该行可以动态添加。

https://i.stack.imgur.com/tc5OA.jpg

除复选框外,所有字段都工作正常(它们位于数据库内的正确位置)。我为每一行检查了 2 个复选框,但是所有值都存储在第一行中,而第二行没有存储预期值。

https://i.stack.imgur.com/BB1QM.jpg

我用数组命名每个字段,例如<input name="category[]">

这是控制器

foreach ($basic_category as $id => $key) {

        $basic_data = array(
            'id_number' => $id_number,
            'basic_category' => $basic_category[$id],
            'basic_workscope' => $basic_workscope[$id],
            'basic_i' => $basic_i[$id],
            'basic_e' => $basic_e[$id],
            'basic_pi' => $basic_pi[$id],
            'basic_pa' => $basic_pa[$id],
            'basic_ata_chapter' => $basic_ata_chapter[$id]
        );

        $this->mod->insert_t_basic($basic_data);

    }

这是模型

public function insert_t_basic($data) {

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

}

如果这还不够清楚或者您需要更多详细信息,请告诉我:)

【问题讨论】:

    标签: php mysql codeigniter checkbox


    【解决方案1】:

    请按以下格式更改所有字段名称

    <input name="data[category][]">
    <input name="data[basic_pi][]"> 
    

    在控制器中

    $data = array();
    foreach ($this->input->post('data') as $k => $v) {
         foreach ($v as $data_k => $data_v) {
             $data[$data_k][$k] = $data_v;
         }
    }
    if(count($data) > 0) {
        $this->mod->insert_t_basic($data);
    }
    

    在模型中

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

    请试试这个希望这会有所帮助。谢谢

    【讨论】:

    • 感谢您的宝贵时间。不幸的是,我收到以下错误:严重性:通知消息:数组到字符串转换文件名:数据库/DB_driver.php 行号:1477
    • 在控制器中,请放入 print_r($data);出口;告诉我结果
    • 你还在苦苦挣扎吗?
    猜你喜欢
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    相关资源
    最近更新 更多