我有一个产品页面,当用户点击“添加到购物车”按钮时,会触发下面的功能,并将desk_id和price解析为该功能。然后将变量引用到插入购物车的购物车数据数组中。
我的问题是,在$ data数组中没有任何东西被添加到购物车中,但是当我添加字符串时它可以正常工作。我已经测试过以确保数据库正确返回产品标题并尝试将这些变量转换为字符串,但它没有任何区别。
function request_desk_booking($desk_id, $price){
$this->load->model('search_model');
//Query database to get desk title because parsing strings through the url does not work
if($query = $this->search_model->desk_details_cart($desk_id)){
//convert title to string
$title = $query['company'].', '.$query['Town'];
$name = (string) $title;
//check to make sure values are not null
if($desk_id !== null && $price !== null){
$this->load->library('cart');
$data = array(
'id' => $desk_id,
'qty' => 1,
'price' => $price,
'name' => $name
);
//insert data into cart
$this->cart->insert($data);
$this->load->view('request_booking', $data);
}else{
$this->load->view('request_booking');
}
}
}
答案 0 :(得分:0)
购物车库对于提供预先验证的数据非常敏感。确保您的$price
变量没有美元符号,并且is_numeric()
。数量很好,因为你很难编码为1. id
和name
都是必需的,所以它们也可能导致它无声地失败。
我会将记录增加到4,让它告诉你哪里出错了(因为它会!)。
答案 1 :(得分:0)
$ title上的','导致了这个问题。当我删除它时,现在全部修复。此外,购物车内容似乎必须始终具有ID,数量,价格和名称。删除任何这些,它不会将项目添加到购物车。