2

私はcodeigniterを初めて使用し、単一のフォームから複数の値をキャプチャしてデータベースを更新しようとしています。

コントローラは次のとおりです。

    public function update_tb_table_test(){

        $tb_items = $_POST;
    }    

そしてビュー:

    <thead>
                <tr>
                    <th>Payment ID</th>
                    <th>Customer ID</th>
                    <th>Date</th>
        </thead>
            <tbody>
                <tr>
                    <td><input type="text" name="update" id="comment_plog" /></td>
                    <td><input type="text" name="update2" id="ar_id" /></td>
                    <td><input type="text" name="update3" id="date" /></td>
                </tr>
                <tr>
                    <td><input type="text" name="update" id="comment_plog" /></td>
                    <td><input type="text" name="update2" id="ar_id" /></td>
                    <td><input type="text" name="update3" id="date" /></td>
                </tr>
                <tr>
                    <td><input type="text" name="update" id="comment_plog" /></td>
                    <td><input type="text" name="update2" id="ar_id" /></td>
                    <td><input type="text" name="update3" id="date" /></td>
                </tr>
            </tbody> 

print_rの結果は次のとおりです。

    Array ( [update] => 3 [update2] => 4 [update3] => 5 ) 

これは、最後の行からの入力ボックスの最後の3つの値です。各行をループする必要があることはわかっていますが、これを設定する方法がわかりません。私も試し$tb_items = $this->input->post(NULL, TRUE);ましたが、最後の値である5のみが返されます。

先に進む前に、print_rに正しい値を返してもらいたいので、モデルを含めませんでした。よろしくお願いします。

4

1 に答える 1

0

使用する必要があります

<input type="text" name="update[]" id="comment_plog" />
<input type="text" name="update2[]" id="ar_id" />
<input type="text" name="update3[]" id="date" />

名前に注意[]してください。だからあなたは次のようなものを得るでしょう

Array ( [update] => Array( [0] => 3 [1] => 4 [2] => 5 ) [update2] => Array( [0] => 7 [1] => 8 [2] => 9 ) [update3] => Array( [0] => 10 [1] => 11 [2] => 12 ) )

のように各フィールドをループできます

foreach($_POST['update'] as $upd1)
{
    //...
}

foreach($_POST['update2'] as $upd2)
{
    //...
}

等々。

于 2012-11-28T18:42:51.917 に答える