在Codeigniter中管理动态表单并更新数据库?

时间:2013-01-31 16:40:44

标签: php database forms codeigniter dynamic

我有一个包含多个表的数据库dbtable

我正在使用php创建表单,并使用<table>布局表单。

表格中的每个<tr>都对应dbtable中的一行。

因此,dbtable中的行越多,tr标签就越多。你得到它。

我的问题是:

如何命名输入标记以便能够使用POST变量来相应地更新数据库?

目前,我正在为他们命名1_name, 2_name, 3_name一个dbtable数据 然后1_1_valueA, 1_1_valueB, 1_2_valueA, 1_2_valueB用于属于1_name,2_name等的数据

但我觉得这不是一个好方法..

2 个答案:

答案 0 :(得分:2)

将它们命名为:

item[0][db_row_id]
item[0][value_a]
item[0][value_b]

item[1][db_row_id]
item[1][value_a]
item[1][value_b]

其中数字0和1等仅作为POST数组中的指示

您将能够使用$_POST['item']

检索所有项目

或在CI $this->input->post('item')

它看起来像这样:

array(
 array('db_row_id'=>val,'value_a'=>val,'value_b'=>val),
 array('db_row_id'=>val,'value_a'=>val,'value_b'=>val)
)

答案 1 :(得分:0)

<input name="reords[0]['Name']" />
<input name="reords[0]['Age']" />
<input name="reords[0]['City']" />

<input name="reords[1]['Name']" />
<input name="reords[1]['Age']" />
<input name="reords[1]['City']" />

您可以通过

访问服务器端的数据
$this->input->post('reords'); 

这是一个像这样的数组

array(array('Name'=>'post val','Age'=>'post val','City'=>'post val'),
      array('Name'=>'post val','Age'=>'post val','City'=>'post val')
  )

您可以使用codeigniter upadte_batch将这些记录添加到db

http://ellislab.com/codeigniter/user-guide/database/active_record.html