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 ) 

这是我输入框中的最后三个值,仅来自最后一行。我知道我需要遍历每一行,但我不确定如何设置。我也尝试过$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 回答