Codeigniter数组捕获POST变量的多行

时间:2012-11-28 18:16:02

标签: codeigniter

我是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返回正确的值,然后再继续。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分: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)
{
    //...
}

等等。