0

我有一个页面,其中包含来自数据库表的数据。在每一行的末尾,都有一个更新按钮,允许用户更新该特定行。我试图将 Id 作为只读输入,但是每当我在任何行上单击提交时,$this->input->post() 返回的值始终是最后一行 Id。我希望它返回我单击提交的 ID。

标识名称操作

echo form_open('control/edit');

foreach($rs as $db)
{
  $row = array(form_input('id', $db['id']), $db['name'], form_submit('update', 'Update'));
  $this->table->add_row($row);
}

echo $this->table->generate();

在控制/编辑控制器中,

$this->input->post('id') // always returns the id of the last row.

有人知道我该怎么做吗?谢谢你。

4

2 回答 2

1

听起来它是作为引用调用传递的,而不是实际设置值,或者更简单地说,最后一行的输入名称“id”是 html 表单中的最后一次出现,这意味着它将是唯一一个得到post'd。

前任:

<input name="id" value="a" />
<input name="id" value="b" />
<input name="id" value="c" />
<input name="id" value="d" />

如果你点击提交,$this->input->post('id') = 'd';

尝试将您的 foreach 更改为:

... form_input("id[{$db['id']}]", $db['id'] ...

然后,您的 $this->input->post('id') 将是一个数组,您可以通过单击的 id 获取键/值。

于 2012-06-06T02:15:58.247 回答
1

我建议将点击侦听器附加到您的更新按钮并添加一个字段。

场地:

并且 tablerows 的 javascript onclick 将是

onclick="document.getElementsByName('selectedRowId')[0].value = this.getElementsByTagName('input')[0].value"
于 2012-06-06T16:23:01.720 回答