【问题标题】:CodeIgniter cart not inserting dataCodeIgniter 购物车未插入数据
【发布时间】:2017-08-09 06:55:14
【问题描述】:

我是 CI 的新手,我正在开发一个电子商务网站。我在将产品添加到购物车时遇到问题。

下面是我的 Jscript 和控制器代码。问题是它在本地主机上工作得很好,但在服务器上却不行。

这是我的代码:

Ajax 请求

    $(document).ready(function(){
            $('.add_cart a').on('click',function(e){
              e.preventDefault();
              var productid = $(this).data('productid');
              var productName = $(this).data('prdname');
              var productPrice  = $(this).data('prdprice');
              var productDp    = $(this).data('prddp');
              console.log(productDp);
              console.log(productid);
              console.log(productPrice);
               console.log(productName);
              $.ajax({
                url:"www.wesbiteurl/home/addToCart/",
                method:'POST',
                data:{id:productid, prdname:productName, 
     prdprice:productPrice, dp:productDp},
                success:function(data){
                  /*alert("product added to cart");*/
                  $('.msg').html(data);
                }
              });
            });
      });

这部分工作正常,我正在从这里发送数据。

在我的控制器中

      public function addToCart(){
            $data = array(
                    'id'=>$this->input->post('id'),
                    'qty' =>1,
                    'price' =>$this->input->post('prdprice'),
                    'name'=>$this->input->post('prdname'),
                    'options' => array('prdDp' => $this->input->post('dp'))
                );

            //return var_dump($data);
            //array(5) { ["id"]=> string(2) "10" ["qty"]=> int(1) ["price"]=> string(2) "20" ["name"]=> string(18) "product name" ["options"]=> array(1) { ["prdDp"]=> string(90) "here link image" } }


                if($this->cart->insert($data)){
                    return var_dump($this->cart->contents());
                }else{
                    return false;
                }
        } 

正如您所见,在 if 语句之前它工作正常,之后它就不起作用了。不过,这在 localhost 中工作正常。

【问题讨论】:

  • return 语句不适用于您的 ajax。只需使用echo json_encode($this->cart->contents())
  • ajax 响应中的data 是什么?控制器中的cart 是您的型号吗?能把插入函数代码贴在这里吗?
  • @kishor10d 它转到 else 语句...如果没有执行
  • @ArunpandianM 来自产品列表页面的数据...购物车是 CI 库
  • @MuhammadAkberKhan tnx mate :) 我的名字中有一些特殊字符,它现在正在工作 tyvm ^^

标签: php ajax codeigniter cart


【解决方案1】:

谢谢大家^^
我的产品名称中有特殊字符...

这就是答案:

可能会有帮助:
https://stackoverflow.com/a/28215632/2940521

——Muhammad Akber Khan 11 mins ago

【讨论】:

    【解决方案2】:
      $data = array(
                    'id'=>$this->input->post('id'),
                    'qty' =>1,
                    'price' =>$this->input->post('prdprice'),
                    'name'=>$this->input->post('prdname'),
                    'options' => array('prdDp' => $this->input->post('dp'))
                );
    
    $this->cart->insert($data);
    $cart = $this->cart->contents();
    if(!empty($cart)){
     echo print_r($cart);
    }
    

    【讨论】:

    • 它仍然是 else 语句....除此之外,不能检查是否为空,因为我想在每次调用此函数时更新购物车中的产品。
    • 您的购物车有商品吗?
    • 当你插入项目时,它会不会看到?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    相关资源
    最近更新 更多