Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter Cart匿名模式_Php_Codeigniter - Fatal编程技术网

Php Codeigniter Cart匿名模式

Php Codeigniter Cart匿名模式,php,codeigniter,Php,Codeigniter,我正在尝试探索codeigniter的购物车。我发现了一些我不知道如何解决的问题。我唯一担心的是,当我试图进入隐名模式,并添加到购物车的一些产品,它将减到我的股票,当我试图关闭我的隐名股票不会回来。可能的解决办法是什么 控制器 public function validaqty() { $this->form_validation->set_rules('qty','Quantity','callback_checkqty'); if($this->f

我正在尝试探索codeigniter的购物车。我发现了一些我不知道如何解决的问题。我唯一担心的是,当我试图进入隐名模式,并添加到购物车的一些产品,它将减到我的股票,当我试图关闭我的隐名股票不会回来。可能的解决办法是什么

控制器

    public function validaqty()
{
    $this->form_validation->set_rules('qty','Quantity','callback_checkqty');

    if($this->form_validation->run()==FALSE):
        $validation = array(
            'qty_error' => form_error('qty')
        );
        echo json_encode($validation);
    else:

        $getprod = $this->CrudModel->get_where('products','id',$this->decrypt);
        $cart = array(
            'id'=> secret_url('encrypt',$getprod->id),
            'name' => $getprod->name,
            'qty' => $this->input->post('qty'),
            'pouchsize' => $getprod->pouch_size,
            'subtotal' => $getprod->price * $this->input->post('qty'),
            'weight' => $getprod->weight,
            'lbctype' => $getprod->lbc_type,
            'stock' => $getprod->stock,
            'price' => $getprod->price,
            'image' => $getprod->image,
            'validate_jquery' => 1
        );
        $cartinsert = $this->cart->insert($cart);
        $lessstock = array(
            'stock' => $getprod->stock - $this->input->post('qty')
        );
        $this->db->where('id',$this->decrypt);
        $this->db->update('products',$lessstock);
        echo json_encode($cart);
    endif;
}
型号

public function get_where($table,$primary,$id)
{
    $query = $this->db->get_where($table,array($primary=>$id));
    return $query->row();
}
JQUERY/AJAX

 $("#qty_field").on("keypress",function(key){
    if(key.which < 48 || key.which > 57){
        key.preventDefault();
    }
})
$("#qty_form").on('submit',function(){
    var name = $(this).data('name');
    $.ajax({
        url: base_url +"cart/qty",
        type: "POST",
        data: $(this).serialize(),
        success: function(data){
            var result = JSON.parse(data);

            if(result.validate_jquery === 1){

            var name = result.name;
            var qty = result.qty;
            // var subtotal = result.subtotal.toFixed(2);
            var subtotal = result.subtotal;
            var currformat = subtotal.toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
            $('#qty_err').html("");
            $('#qty_field').val("1");

            $.notify({
                title: '<strong>ADDED TO CART</strong>'+ "<br>",
                message: "Product Name: "+name +"<br>"+"Quantity: " + qty +"<br>" + "Total: ₱ " +currformat+"<h5>To checkout, click the shopping cart</h5>",

            },

            {
                type: 'pastel-danger',
                delay: 5000,
                template: '<div data-notify="container" class="col-xs-11 col-sm-3 alert alert-{0}" role="alert">' +
                    '<span data-notify="title">{1}</span>' +
                    '<span data-notify="message">{2}</span>' +
                '</div>'
            }
            );

            }else{
                $("#qty_err").html(result.qty_error);
            }


        },
        error:function(data){
        alert("Oops... Something went wrong :(");

        }
    });
    event.preventDefault();
});
$(“#数量#字段”)。打开(“按键”,功能(按键){
if(key.which<48 | | key.which>57){
key.preventDefault();
}
})
$(“#数量表”)。在('submit',function()上{
变量名称=$(this.data('name');
$.ajax({
url:base_url+“购物车/数量”,
类型:“POST”,
数据:$(this).serialize(),
成功:功能(数据){
var result=JSON.parse(数据);
if(result.validate_jquery==1){
var name=result.name;
变量数量=结果数量;
//var小计=结果。小计。固定(2);
var小计=结果小计;
var currformat=小计.固定(2).替换(/(\d)(?=(\d\d\d)+(?!\d))/g,“$1”);
$('qty_err').html(“”);
$('数量'字段').val(“1”);
美元。通知({
标题:“添加到购物车”“+”
“, 消息:“产品名称:“+Name+”
“+”数量:“+qty+”
“+”总计:₱“+currformat+”要结帐,请单击购物车“, }, { 类型:“粉彩危险”, 延误:5000, 模板:“”+ '{1}' + '{2}' + '' } ); }否则{ $(“#数量错误”).html(结果.数量错误); } }, 错误:函数(数据){ 警惕(“哎呀……出了点问题:(”); } }); event.preventDefault(); });
PS:为了澄清,我只想知道是否有一些可能的解决方案可以退货,如果你试图在匿名/私人模式下添加到购物车,那么我就退出它。另外,我看到的另一个问题是,一旦我想到购物车的会话结束,股票也不会退货


谢谢

让我模拟一下。@MalikMudassar好的,我将等待分享一些代码。。可能是由于产品中的特殊字符name@devpro我的代码在添加到购物车时没有问题,我需要一些解决方案。我唯一担心的是,当我尝试在谷歌chrome中使用匿名模式添加到购物车时,我关闭了它。我的产品库存将我不会回来。例如,我有“库存为10的产品A”,然后我使用incognito将数量为1的产品添加到购物车。当我关闭incognito时,我的库存将不会返回。如果您熟悉SO的规则,您必须包含代码片段,以便我们了解您的问题所在。