1 回答
TA贡献1875条经验 获得超5个赞
它正在发生,因为隐藏数组将发送所有数据,但您的复选框将仅发布选定的数组值。因此,您的服务器端代码中会发生密钥不匹配。要解决这个问题,您需要唯一地提供数组键。
重新排列您的前端代码,如下所示。
<?php
$no=1;
if(!empty($getsifat)) {
$inputid = 0;
foreach ($getsifat as $kr_key => $kendaraan) {
$attch1 = $attch2 = "";
foreach ($kendaraan['sub']['count'] as $data){
$attch1 .= '<input type="checkbox" name="id_kendaraan['.$inputid.']" value="'.$kendaraan['id_kendaraan'].'">';
$attch1 .= '<input type="hidden" name="total['.$inputid.']" value="'.$data['total'].'" >';
$attch2 .= '<td>'.$data['total'].'</td>';
$inputid++;
}
?>
<tr>
<td><?php echo $attch1 ?> </td>
<td><?php echo $no ?> </td>
<td><?php echo $kendaraan['nama'] ?> </td>
<td><?php echo $kendaraan['platno'] ?></td>
<?php echo $attch2 ?>
</tr>
<?php
$no++;
}
}
?>
像这样重写控制器
public function Selected(){
$id_kendaraan = $this->input->post('id_kendaraan');
$total = $this->input->post('total');
$data = array();
foreach ($id_kendaraan as $key => $value) {
$data = array(
'id_kendaraan' => $value,
'total' => $total[$key]
);
$this->PenilaianModel->TambahSelected($id_kendaraan, $data);
}
redirect('Data/Penilaian', 'refresh');
}
笔记 :
您正在循环两次相同的循环。我把它作为一个。
in line 您正在循环打印。我猜它会出现在循环之外。
插入上下文中不需要行$this->db->where('id_kendaraan', $id_kendaraan)。
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报