如何将查询字符串传递给控制器

时间:2012-06-05 23:21:28

标签: php codeigniter

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

任何人都知道我该怎么办?谢谢。

2 个答案:

答案 0 :(得分:1)

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

例如:

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

如果您点击提交,$ this-&gt; input-&gt; post('id')='d';

尝试将您的foreach改为:

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

您的$ this-&gt; input-&gt; post('id')将成为一个数组,您可以使用点击的ID获取键/值。

答案 1 :(得分:1)

我建议将点击监听器附加到更新按钮并添加字段。

字段:

桌面的javascript onclick将是

onclick="document.getElementsByName('selectedRowId')[0].value = this.getElementsByTagName('input')[0].value"