0

データベーステーブルのデータを含むページがあります。すべての行の最後に、ユーザーがその特定の行を更新できるようにする[更新]ボタンがあります。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.

誰もがこれについてどうすればいいのか知っていますか?ありがとうございました。

4

2 に答える 2

1

更新ボタンにクリック リスナーをアタッチし、フィールドを追加することをお勧めします。

分野:

そして、テーブル行のJavaScript onclickは次のようになります

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

実際に値を設定するのではなく、参照渡しとして渡されているように聞こえます。または、より単純に言えば、最後の行の「id」の入力名は、html フォームで最後に出現するものです。投稿します。

元:

<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 に答える