添加到Codeigniter购物车类中的购物车

时间:2011-03-23 19:39:16

标签: php codeigniter

感谢您花时间阅读本文。我一直在使用代码点火器的购物车类作为基本的购物车,但我有一个小问题。将项目添加到购物车后,我将用户重定向到结帐页面,但是当我单击浏览器时,项目将被删除。我知道这是因为我在标题中有<?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 个答案:

答案 0 :(得分:1)

我知道有点老但我遇到了同样的问题,问题是该库有一个正则表达式来限制项目名称

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/

答案 1 :(得分:0)

  

重要事项: Cart类利用CodeIgniter的会话类将购物车信息保存到数据库中,因此在使用Cart类之前,必须按照会话文档中的说明设置数据库表,然后设置application / config / config.php文件中的会话首选项使用数据库。

我认为你也是这样做的? 我给你的唯一建议是删除重定向,尝试导航到另一个页面,然后导航回来查看它是否保持正确的数字。

另外,你说你正在使用浏览器后退按钮。您是否尝试刷新页面以查看它是否未使用浏览器缓存副本?