一次只能将一件商品添加到购物车

时间:2014-03-23 17:10:27

标签: php codeigniter cart

我一次只能在购物车中添加一件商品。 我添加到购物车的上一个项目将被替换,这是我使用的方法:

public function addcart(){

    if(isset($this->session->userdata)){
        $type = $this->session->userdata('type');
        $username = $this->session->userdata('username');

         $this->db->select('id_product ,price');
         $query = $this->db->get('product', array('title'=> $this->input->post('title')));

     $cart['product'] = $this->cart->contents();
         if($query->num_rows() >0){

            $row = $query->row();
             $id = $row->id_product;

            $cart['product'][$id] = array(

            'id'     => $row->id_product,
           'qty'     => $this->input->post('quantity'),
           'price'   => $row->price,
           'name'    => $this->input->post('title'),
           //'options' => array('Size' => 'L', 'Color' => 'Red')

        );

        $this->cart->insert($cart['product'][$id]);

        }
    }

}

2 个答案:

答案 0 :(得分:0)

检查$ cart ['product'] = $ this-> cart-> contents();回到你的身边 如果有问题,它可能会重置您的产品阵列,然后您插入第二个产品,并获得一个产品的总购物车

答案 1 :(得分:0)

我认为您正在严重使用$this->db->get(),您正在逐字搜索产品,而不是"正确"。如果您拥有相同(标题)相同的产品,会发生什么?你得到第一个/第二个?

请按以下方式调整您的表格

id, title, price... 'custom fields', active

id设为自动增量,active为布尔值(以便稍后可以打开/关闭产品)

让你的方法接受参数:

public function addcart( $id = FALSE ) {

  if ($id === FALSE || !is_numeric($id)) {
    //wrong ID do nothing or throw alert or inform user about it
    redirect('');

  }

  if(isset($this->session->userdata)) {

    $type     = $this->session->userdata('type');
    $username = $this->session->userdata('username');

    $this->db->select('id_product ,price');
    $query = $this->db->get('product', array('id' => $id, 'active' => '1'));

    $cart['product'] = $this->cart->contents();

    if($query->num_rows() >0) {

      $row  = $query->row();
      $id   = $row->id_product;

      $cart['product'][$id] = array(
          'id'     => $row->id_product,
          'qty'     => $this->input->post('quantity'),
          'price'   => $row->price,
          'name'    => $this->input->post('title'),
          //'options' => array('Size' => 'L', 'Color' => 'Red')
      );

      $this->cart->insert($cart['product'][$id]);

    }

  }

}

快乐的鳕鱼(e)点燃。