【问题标题】:Managing a dynamic form and updating a database in Codeigniter?在 Codeigniter 中管理动态表单并更新数据库?
【发布时间】:2013-01-31 16:40:43
【问题描述】:

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

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

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

所以,dbtable 中的行越多,tr-tags 就越多。

我的问题是:

我应该如何命名输入标签才能使用 POST 变量相应地更新数据库?

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

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

【问题讨论】:

  • 将数据库模式与示例数据一起放入表单。

标签: php database forms codeigniter dynamic


【解决方案1】:

这样命名它们:

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)
)

【讨论】:

  • 这很神奇!但是,如何命名输入标签以创建二维数组?我有任意多个带有任意子项的标题...name="item[0][1][valueA]" 用于标题编号 1 和子项编号 2,name="item[0][header]" 用于编号 1 标题输入?
  • 我不太确定你在问什么。您可能希望将其作为一个带有示例代码的新问题发布。
【解决方案2】:
<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

【讨论】:

    猜你喜欢
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    相关资源
    最近更新 更多