在codeigniter中处理多个checkbox数组

时间:2015-07-13 06:57:28

标签: php mysql forms codeigniter

我打算建立一个调查表生成器。表单中的name属性是动态的,来自数据库。所以我不知道任何输入元素的name。从数据库,我已经生成了表单及其工作,但我提交多个复选框值并存储到数据库时遇到问题。

我试过了:

查看

 // $inputtype, $name comes from database.
<input type="$inputtype" name="$name"[]>
 // I can fetch values of all checked option and loop through it and convert it into string using explode and insert into database. Thats not a big deal.

但是,问题是name属性是数据库动态的。我在运行时不知道name attr。所以我不能$this->input->post("checkbox_name");。因此,我通过创建运行时表单所需的数据库字段直接将表单数据插入到数据库中。并通过执行以下操作插入表单数据:

 $this->input->post();   //directly to model.

但是,当我尝试以相同的方式插入多个复选框数组时,它会在Array to string conversion的codeigniter库中抛出错误mysql/mysql_driver.php。我怎样才能克服这个问题。请帮助。

更新

我在$this->input->post()

提交表单后得到的数组
 array
'first_name' => string 'sushil ' (length=7)
'last_name' => string 'shrestha' (length=8)
'gen' => string 'Male' (length=4)
'hobbies' => 
  array
    0 => string 'gaming' (length=6)
    1 => string 'football' (length=8)
    2 => string 'cricket' (length=7)
'language' => string 'IOS' (length=3)

但是我无法直接将数据库存储到数据库中。

1 个答案:

答案 0 :(得分:0)

如果你想以这种方式存储爱好,你应该总是使用单独的表,外键与你的用户表相关。意味着你的hobbie表包含用户的爱好。即使用用户ID,tbl_hobbies.id