我正在使用Codeigniter购物车。我想更新多个购物车项目。这就是我正在做的事情
public function updatecart(){
foreach ($this->input->post() as $value){
$this->cart->update(array(
'rowid' => $value['rowid'],
'qty' => $value['qty'],
));
}
redirect(base_url().'product/cart');
}
此代码仅更新购物车中的第一项而不是更新所有项目,需要您的帮助来修复它,如果我print_r($this->input->post());
这就是我得到的。
Array
(
[1] => Array
(
[rowid] => ad61ab143223efbc24c7d2583be69251
[qty] => 7
)
[2] => Array
(
[rowid] => d09bf41544a3365a46c9077ebb5e35c3
[qty] => 1
)
)
当我更新它时只更新第一个数组索引的数据索引
答案 0 :(得分:0)
创建数组后,将其传递给它。
foreach ($this->input->post() as $value){
$data[] = array(
'rowid' => $value['rowid'],
'qty' => $value['qty'],
);
}
$this->db->update_batch('mytable', $data, 'rowid');
这应该更新数组中包含rowid的每一行,它也会更快
答案 1 :(得分:0)
您可以使用
public function updatecart(){
$roids=$this->input->post('rowid');
$gty=$this->input->post('qty');
if (!empty($roids)) {
foreach($roids as $index=> $val ) {
$data = array(
'rowid' => $val ,
'qty' => $gty[$index]
);
$this->cart->update($data);
}
}
}