Поэтому я пытаюсь создать приложение с тележкой, и когда я попытался добавить элемент, он не работает. Кстати, у меня уже есть приложение для работы с тележкой, поэтому мне интересно, почему он не работает. Я почти скопировал все с рабочего. вот код
Контроллер корзины
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Cart extends CI_Controller { public function __construct() { parent::__construct(); $this->load->library('cart'); } public function add_to_cart(){ $id = $this->uri->segment(3); if($this->cart->contents()){ foreach ($this->cart->contents() as $item){ if ($item['id']==$id){ $data = array('rowid'=>$item['rowid'], 'qty'=>++$item['qty']); $process = $this->cart->update($data); } else{ $data = array( 'id'=>$id, 'qty'=>1, 'name' => $this->get_data->get_value('product_name','products','product_id', $id), 'price' => $this->get_data->get_value('product_price','products','product_id', $id) ); $process = $this->cart->insert($data); } } } else{ $data = array('id'=>$id, 'qty' =>1, 'name' => $this->get_data->get_value('product_name','products','product_id', $id), 'price' => $this->get_data->get_value('product_price','products','product_id', $id), ); $process = $this->cart->insert($data); } if($process){ $this->session->set_flashdata('success', 'Successful'); redirect('products'); } else{ $this->session->set_flashdata('failed', 'Failed'); redirect('products'); //var_dump($process); } }
Вот кнопка
<div class="button pull-right" style="margin-top: 10px;"><a href="<?php echo base_url().'cart/add_to_cart/'.$row->product_id;?>"><span class="glyphicon glyphicon-shopping-cart"></span>Add to Cart</a></div>
Я действительно не вижу проблемы, я использую базу данных сеанса, sess_us_database уже ИСТИНА. Я попытался использовать var_dump($process)
и это неверно, я попробовал var_dump($data)
и данные кажутся прекрасными, но часть вставки не работает. Есть идеи, ребята? это было бы большой помощью для меня, спасибо.
CI. По умолчанию корзина допускает только alpha-numeric, dashes, underscores, colons or periods
в названии продукта, а если цена продукта равна 0
то он также не добавит товар в корзину.
Сначала проверьте их.
Хороший способ изменить эту переменную – поместить MY_Cart.php в ваше приложение \ libraries \ MY_Cart.php с помощью этого кода:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class MY_Cart extends CI_Cart { var $product_name_rules = '[:print:]'; }