Добавление в корзину в классе корзин Codeigniter - PullRequest
4 голосов
/ 23 марта 2011

спасибо, что нашли время, чтобы прочитать это. Я использовал класс корзины для покупок из воспламенителя кода для основной корзины, но у меня возникла одна небольшая проблема. После добавления товара в корзину я перенаправляю пользователя на страницу оформления заказа, но когда я снова нажимаю в браузере, предмет удаляется. Я знаю это, потому что у меня есть <?php echo anchor('cart','<strong>'.$this->cart->total_items(). '</strong> item(s)') ?> в заголовке, и оно уменьшается при возвращении. Это действительно раздражает, и я бы хотел это исправить.

это контроллер, обрабатывающий форму

public function process () {
if($this->input->post('submit')) {
    $product = $this->products_model->getProductRow($this->input->post('productid'));

    $data = array(
    'id'      => $product['id'],
    'qty'     => 1,
    'price'   => $this->product_helper->calcPrice($product['id']),
    'name'    => $product['name']
    );

    $this->cart->insert($data);
    redirect('cart');
    //have tried using redirect('cart', 303); but doest do anything
    //have also tried flusing the buffer
}           
else
    redirect('seatcovers');}

Есть что-то тривиальное, что я здесь упускаю, или это нужно изменить в классе тележки CI?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 15 августа 2012

Я знаю, что он старый, но у меня была та же проблема, проблема в том, что в библиотеке есть регулярное выражение для ограничения имени элемента

class CI_Cart {

    // These are the regular expression rules that we use to validate the product ID and    product name
    var $product_id_rules   = '\.a-z0-9_-'; // alpha-numeric, dashes, underscores, or periods
    var $product_name_rules = '\.\:\-_ a-z0-9'; // alpha-numeric, dashes, underscores, colons or periods

измените это или создайте свою собственную библиотеку корзины

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Cart extends CI_Cart
{
    function __construct()
    {
        parent::__construct();
        $this->product_name_rules = '\d\D';
    }
}

Я нашел решение здесь http://darrenonthe.net/2011/05/03/cant-add-products-to-codeigniter-shop-cart-class/?

0 голосов
/ 25 марта 2011

Важно: Класс Cart использует класс сеанса CodeIgniter для сохранения информации о корзине в базу данных, поэтому перед использованием класса Cart необходимо настроить таблицу базы данных, как указано в документации по сеансу, и установить настройки сеанса в вашем файле application / config / config.php для использования базы данных.

Полагаю, ты это тоже сделал? Единственное, что я могу вам предложить, это удалить это перенаправление, попытаться перейти на другую страницу, а затем вернуться назад, чтобы проверить, поддерживает ли он правильный номер.

Кроме того, вы говорите, что используете кнопку возврата браузера. Вы пытались обновить страницу, чтобы убедиться, что она не использует кэшированную копию браузера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...