我有一个包含许多表的数据库,dbtable
.
我正在使用php创建一个表单,并使用<table>
布局表单。
表中的每个<tr>
对应于dbtable
中的一行。
所以,dbtable
中的行越多,tr-tags就越多......你得到它。
我的问题是:
我应该如何命名输入标签才能使用 POST 变量相应地更新数据库?
目前,我将它们命名为一个可1_name, 2_name, 3_name
数据库数据然后1_1_valueA, 1_1_valueB, 1_2_valueA, 1_2_valueB
属于1_name、2_name等的数据。
但我觉得这不是一个好方法。
这样命名它们:
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)
)
<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')
)
您可以使用 Codegniter upadte_batch
将这些记录添加到数据库
http://ellislab.com/codeigniter/user-guide/database/active_record.html