Codeigniter:更新多个购物车项目


Codeigniter : Updating multiple cart items

我正在使用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
        )
)

当我更新时,它只更新第一个数组的索引

一旦你创建了数组传递给this

foreach ($this->input->post() as $value){
   $data[] = array(
      'rowid'      =>     $value['rowid'],
      'qty'        =>     $value['qty'],
    );
 }
$this->db->update_batch('mytable', $data, 'rowid');

这应该更新数组中有行号的每一行,它也快得多

你可以使用

 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);
     }
}
}