Codeingniter:数据未插入购物车

时间:2017-09-28 21:21:55

标签: javascript php jquery codeigniter

我正在尝试按如下方式在购物车中插入数据

public function add(){ 
       $this->load->library('cart'); 
        $data = array(
          "id"     => $this->input->post('product_id'),
          "name"   => $this->input->post('product_name'),
          "qty"    => $this->input->post('quantity'), 
          "price"  => $this->input->post('product_price'),
         );
   $this->cart->insert($data);  
 }

我的javascript代码

<script>
 $("form").submit(function(e) { 
            e.preventDefault();


            var product_id = $(this).find('input[name=product_id]').val();
            var quantity = $(this).find('input[name=qty]').val();
            var product_name = $(this).find('h3.title').text();
            var product_price = $(this).find('h3.price').data('price');
            alert(product_price);

            if(quantity != '' && quantity > 0)
              {
               $.ajax({
                url:"<?php echo base_url(); ?>cart/add",
                method:"POST",
                data:{product_id:product_id, product_name:product_name, product_price:product_price, quantity:quantity},
                success:function(data)
                {
                 alert("Product Added into Cart");
                 $('#cart_details').html(data);
                 $('#' + product_id).val('');
                }
               });
              }
              else
              {
               alert("Please Enter quantity");
              } 

    }); 
});
</script>

我得到一个弹出数据插入购物车,但没有任何东西。

<?php echo form_open('cart/add_cart_item'); ?>
       <h3 class="text-tamween title"  ><?=$value->title;?></h3>
       <h3 class="text-tamween price" data-price="<?=$value->price?>">Prcie :<?=$value->price;?>AED</h3>
        <div class="form-group">
         <input type="number" value="<?=$qty?>" class="form-controls qty" min="
         <?=$qty?> "name="qty" >
       </div>
        <p>
          <?=$value->description;?>
         </p>    
       <?php echo form_hidden('product_id', $value->id); ?> 
       <input type="submit" class="btn btn-default" value="Add to Cart">
 <?=form_close();?> 

2 个答案:

答案 0 :(得分:0)

打印:

$this->input->post()

我认为有些数据丢失了。

在codeigniter购物车库中,需要上面的前四个数组索引(id,qty,price和name)。如果省略其中任何一项,数据将不会保存到购物车中。

答案 1 :(得分:0)

该功能没有回报。你应该退回购物车json。

public function add() { 
    ...
    $this->cart->insert($data);  

    // Return|Output JSON Data
    $this->output
        ->set_content_type('application/json')
        ->set_output(json_encode($this->cart->contents()));
}