2017-04-03 113 views
0

我在将某些产品添加到购物车时遇到问题,但当我要购物车的内容时,我发现它是空的。在购物车中添加并显示列表产品codeigniter

这是我的控制器:

public function add_to_cart(){ 

    $insert_data = array( 
    'id' => $this->input->post('id'), 
    'name' => $this->input->post('name'), 
    'price' => $this->input->post('price'), 
    'qty' => $this->input->post('qty')); 

    // This function add items into cart. 
    $this->cart->insert($insert_data); 


} 

,这是我的形式,新产品添加到购物车:

<div class="button-group"> 
        <form method="POST" action="<?php echo base_url().'add_to_cart'; ?>"> 
        <div style="display:none"> 
        <input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash();?>" /> 
        </div> 
        <input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>"> 
        <input type="number" name="qty" id="<?php echo $ligneBase->id;?>"> 
        <input type="hidden" name="name" value="<?php echo $ligneBase->name;?>"> 
        <input type="hidden" name="price" value="<?php echo $ligneBase->price;?>"> 
        <input type="hidden" name="id" value="<?php echo $ligneBase->id;?>"> 
         <input class="add_cart" type="submit" value="Add to cart"> 
         <div class="add-to-links"> 
        </form> 
       </div> 

,这是我的header.php车:

<table class="table"> 
       <tbody> 
       <div id="text"> 
        <?php $cart_check = $this->cart->contents(); 

        // If cart is empty, this will show below message. 
        if(empty($cart_check)) { 
        echo '<h4 align="center">No Product in cart, To add products to your shopping cart click on "Add to Cart" Button</h4>'; 
        } ?> 
       </div> 

        <?php 
        $cart = $this->cart->contents(); 
        foreach($cart as $indice => $ligneBase){ 
        ?> 
        <tr> 
        <td class="text-center"><a href="product.html"><img class="img-thumbnail" title="Xitefun Causal Wear Fancy Shoes" alt="Xitefun Causal Wear Fancy Shoes" src="image/product/sony_vaio_1-50x50.jpg"></a></td> 
        <td class="text-left"><a href="product.html"><?php echo $ligneBase->id;?></a></td> 
        <td class="text-right">x 1</td> 
        <td class="text-right"><?php echo $ligneBase->name;?> </td> 
        <td class="text-center"><button class="btn btn-danger btn-xs remove" title="Remove" onClick="" type="button"><i class="fa fa-times"></i></button></td> 
        </tr> 

       <?php 
        } 
       ?> 


       </tbody> 
       </table> 
+0

此行在插入时返回任何rowid $ this-> cart-> insert($ insert_data); – shantanu

+0

很确定'cart'库已经在CI的最新版本中被删除 - 只是一个警告! – MackieeE

回答

0

我可以建议你的代码结构有点改善。您需要使用模型进行数据库交互

步骤1。控制器功能

public function cart() 
{ 
    $data['cart_items']=$this->cart_model->getCartItems(); 
    if($_POST) 
    { 
     // Perform Validation 
     if($this->form_validation->run()==false) 
     { 
      $data['errors']=validation_errors(); 
      $this->load->view('cart_view',$data); 
     } 
     else 
     { 
      $row=$this->cart_model->insertToCart($this->security->xss_clean($_POST)); 
      if($row) 
      { 
       $data['success']='Item Added'; 
       $this->load->view('cart_view',$data); 
      } 
      else 
      { 
       $data['error']='Item Could not be Added'; 
       $this->load->view('cart_view',$data); 
      } 
     } 
    } 
    else 
    { 
     $this->load->view('cart_view',$data); 
    } 

} 

步骤-2。模型函数

public function getCartItems() 
{ 
    $sql='create query'; 
    return $this->db->query($sql)->result_array(); 
} 

public function insertToCart($data) 
{ 
    $item=array(
     'field' => $data['index'] 
    ); 
    $this->db->insert('cart',$item); 
    return $this->db->insert_id(); 
} 

步骤3中。查看

<div class="button-group"> 
    <form method="POST" action=""> 
     <input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash();?>" /> 
     <input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>"> 
     <input type="number" name="qty" id="<?php echo $ligneBase->id;?>"> 
     <input type="hidden" name="name" value="<?php echo $ligneBase->name;?>"> 
     <input type="hidden" name="price" value="<?php echo $ligneBase->price;?>"> 
     <input type="hidden" name="id" value="<?php echo $ligneBase->id;?>"> 
     <input class="add_cart" type="submit" value="Add to cart"> 
     <div class="add-to-links"> 
     </form> 
</div> 
0

我在您的代码中锻炼

我的控制器

public function workout() 
    { 



     if($this->input->post()) 
     { 
      //echo "<pre>"; print_r($this->input->post()); 

      $insert_data = array( 
    'id' => $this->input->post('id'), 
    'name' => $this->input->post('name'), 
    'price' => $this->input->post('price'), 
    'qty' => $this->input->post('qty')); 

      $this->cart->insert($insert_data); 

      echo "<pre>"; print_r($this->cart->contents()); 


      exit(); 
     } 

     $this->load->view('workout'); 
    } 

我看来

<form method="POST" action="<?php echo base_url().'welcome/workout'; ?>"> 
        <input type="number" name="qty" id="1002"> 
        <input type="hidden" name="name" value="Mobile"> 
        <input type="hidden" name="price" value="300"> 
        <input type="hidden" name="id" value="1002"> 
         <input class="add_cart" type="submit" value="Add to cart"> 
         <div class="add-to-links"> 
        </form> 

和我的输出是

Array 
(
    [fba9d88164f3e2d9109ee770223212a0] => Array 
     (
      [id] => 1002 
      [name] => Mobile 
      [price] => 300 
      [qty] => 24 
      [rowid] => fba9d88164f3e2d9109ee770223212a0 
      [subtotal] => 7200 
     ) 

) 

工作正常

enter image description here

,你的错误是我ñ显示的foreach

<table class="table"> 
       <tbody> 
       <div id="text"> 
        <?php $cart_check = $this->cart->contents(); 

        // If cart is empty, this will show below message. 
        if(empty($cart_check)) { 
        echo '<h4 align="center">No Product in cart, To add products to your shopping cart click on "Add to Cart" Button</h4>'; 
        } ?> 
       </div> 

        <?php 
        $cart = $this->cart->contents(); 
        foreach($cart as $indice => $ligneBase){ 
        ?> 
        <tr> 
        <td class="text-center"><a href="product.html"><img class="img-thumbnail" title="Xitefun Causal Wear Fancy Shoes" alt="Xitefun Causal Wear Fancy Shoes" src="image/product/sony_vaio_1-50x50.jpg"></a></td> 
        <td class="text-left"><a href="product.html"><?php echo $ligneBase->id;?></a></td> 
        <td class="text-right">x 1</td> 
        <td class="text-right"><?php echo $ligneBase->name;?> </td> 
        <td class="text-center"><button class="btn btn-danger btn-xs remove" title="Remove" onClick="" type="button"><i class="fa fa-times"></i></button></td> 
        </tr> 

       <?php 
        } 
       ?> 


       </tbody> 
       </table> 

改变它

<table class="table"> 
        <tbody> 
        <div id="text"> 
         <?php $cart_check = $this->cart->contents(); 

         // If cart is empty, this will show below message. 
         if(empty($cart_check)) { 
         echo '<h4 align="center">No Product in cart, To add products to your shopping cart click on "Add to Cart" Button</h4>'; 
         } ?> 
        </div> 

         <?php 
         $cart = $this->cart->contents(); 
         foreach($cart as $indice => $ligneBase){ 
         ?> 
         <tr> 
         <td class="text-center"><a href="product.html"><img class="img-thumbnail" title="Xitefun Causal Wear Fancy Shoes" alt="Xitefun Causal Wear Fancy Shoes" src="image/product/sony_vaio_1-50x50.jpg"></a></td> 
         <td class="text-left"><a href="product.html"><?php echo $ligneBase['id'];?></a></td> 
         <td class="text-right">x 1</td> 
         <td class="text-right"><?php echo $ligneBase['name'];?> </td> 
         <td class="text-center"><button class="btn btn-danger btn-xs remove" title="Remove" onClick="" type="button"><i class="fa fa-times"></i></button></td> 
         </tr> 

        <?php 
         } 
        ?> 


        </tbody> 
        </table> 
相关问题