感谢您花时间阅读本文。我一直在使用代码点火器的购物车类作为基本的购物车,但我有一个小问题。将项目添加到购物车后,我将用户重定向到结帐页面,但是当我单击浏览器时,项目将被删除。我知道这是因为我在标题中有<?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的购物车类中进行更改?
非常感谢
答案 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文件中的会话首选项使用数据库。
我认为你也是这样做的? 我给你的唯一建议是删除重定向,尝试导航到另一个页面,然后导航回来查看它是否保持正确的数字。
另外,你说你正在使用浏览器后退按钮。您是否尝试刷新页面以查看它是否未使用浏览器缓存副本?