我是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返回正确的值,然后再继续。在此先感谢您的帮助。
答案 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)
{
//...
}
等等。