我正在尝试制作一个编辑表格。我使用重新插入方法
这是我要编辑的t_job_detail
表(这是虚拟的):
ID Job ID Name Score
A1 B1 Claire 75
A1 B2 Claire 80
A2 B4 Dart 60
我的表单如下:
<form id='f_edit' method='post' action='<?php echo site_url('con_atk/edit_data'); ?>'>
<div>//header div </div>
<?php foreach($test as $row){ ?> //$test = data from mysql query when I select ID = A1
<div>
<table>
<tr>
<td><input type='text' name='arr[0]['job_id']' value='<?php echo $row['job_id']; ?>'</td>
<td><input type='text' name='arr[1]['name']' value='<?php echo $row['name]; ?>'</td>
<td><input type='text' name='arr[2]['score']' value='<?php echo $row['score']; ?>'</td>
</tr>
</table>
</div>
<?php }; ?>
<div><input type='submit' value='update' /></div>
</form
当我选择ID = A1时,生成了两个表,因为我有两个从数据库返回的结果。但是,当我将此表单发送到我的控制器(site_url('con_atk/edit_data')
)时,只发送一个表值。
如何记录生成的表格中的所有数据并将其发送到我的控制器?也许是以数组或json的形式。
这是我的控制者:
//FORM EDIT
public function edit_data()
{
$details = $this->input->post('arr');
print_r($details); //only data from first table is printed
die;
//delete ID = A1 process
//insert new data process
}
注意:
答案 0 :(得分:0)
尝试更新foreach循环以使用密钥,如下所示:
<?php foreach($test as $key => $value){ ?>
<div>
<table>
<tr>
<td><input type='text' name='arr[$key]['job_id']' value='<?php echo $value['job_id']; ?>'</td>
<td><input type='text' name='arr[$key]['name']' value='<?php echo $value['name]; ?>'</td>
<td><input type='text' name='arr[$key]['score']' value='<?php echo $value['score']; ?>'</td>
</tr>
</table>
</div>
<?php }; ?>
现在,您的行中的输入都是使用彼此完全相同的名称发布的。它们必须是唯一的,以便在发布表单后能够访问所有这些内容。