在Codeigniter v2.2中更新购物车库

时间:2015-08-27 13:49:15

标签: codeigniter codeigniter-2

我正在尝试更新我的购物车(通过客户更改销售产品的数量),并且我正在使用购物车库。当我提交更新按钮时,页面将根据需要重定向,但它不会更新并显示之前的值,我不会收到任何错误。我的代码出了什么问题???

我的更新控制器代码是

public function update($in_cart = null){
        $data= $_POST;      
        $this->cart->update($data);        

        //show cart page
        redirect ('cart','refresh');      
    }

我的观看代码是

<form action="cart/update" method="post">
        <table cellpadding="6" cellspacing="1" style= "width: 100%" border="0" >
            <tr>
                <th>QTY</th>
                <th>item description</th>
                <th style="text-align: right">Item Price</th>
            </tr>
            <?php $i=1;  ?> <!-- $i=1 is a counter -->
            <?php foreach ($this->cart->contents() as $items) : ?> 
            <input type="hidden" name="<?php echo $i.'[rowid]'; ?>" value="<?php echo $items['rowid'];?> "/>
            <tr>
                <td id="cart-qty"><input type="text"  name="<?php echo $i.'[qty]'; ?>" value="<?php echo $items['qty'];?>" maxlength="3" size="5"> </td>
                <td><?php echo $items ['name'];?></td>
                <td style="text-align: right"><?php echo $this->cart->format_number($items['price']);?> </td>
            </tr>
                    <?php $i++ ;  ?>
            <?php endforeach; ?>

            <tr>
                <td></td>
                <td class="right"><strong>Total</strong></td>
                <td class="right" style="text-align: right">$<?php echo $this->cart->format_number($this->cart->total());?></td>
            </tr>

        </table>
        <br>
        <p><button class="btn btn-default" type="submit">Update Cart</button>
        <a class="btn btn-default" href="cart">go to cart</a></p>
    </form>

2 个答案:

答案 0 :(得分:0)

尝试将Controller功能修改为:

public function update(){
  $rowid=$this->input->post('rowid');
  $cart=$this->cart->contents();
  foreach ($cart as $cart) {
  //now match your item whose qty is updated
  if($rowid==$cart['rowid']){
   $qty=$cart['qty'];
   }
  }
  $data=array(
  'rowid'=>$rowid,
  'qty'=>$qty+1
  );
  $data=$this->cart->update($data);
  redirect ('cart','refresh');      
}

答案 1 :(得分:0)

在更新中一般我们使用id来更新任何行,在这种情况下我们还需要一个id所以在购物车库中添加它`s创建每个产品的自动row_id所以你必须使用row_id更新购物车内容请请按照下图 -

enter image description here