我一次只能在购物车中添加一件商品。 我添加到购物车的上一个项目将被替换,这是我使用的方法:
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]);
}
}
}
答案 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)点燃。