CodeIgniter购物车不插入数据

时间:2017-08-09 06:55:14

标签: php ajax codeigniter cart

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

以下是我的代码Jscript和控制器。问题是它在localhost中工作得很好,但在服务器上却没有。

这是我的代码:

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中正常工作。

2 个答案:

答案 0 :(得分:1)

谢谢你们^^
我的产品名称中有特殊的字符......

这就是答案:

  

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

- Muhammad Akber Khan 11 mins ago

答案 1 :(得分:0)

  $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);
}