如何在Codeigniter中使用ajax更新购物车后打印结果

时间:2017-01-10 22:13:17

标签: javascript php ajax codeigniter

这是我的控制器代码:

function customer_cart_update(){
         $count_cart = count($this->cart->contents());
         for($i=0 ;$i <=$count_cart ;$i++){
             $data_cart = array(
                 'rowid' => $this->input->post('rowid'.$i),
                 'qty' => $this->input->post('qty'.$i),
             );
         }
         //print_r($data);die;
        $data = $this->cart->update($data_cart);
         //Either  print value or send value to database

         echo json_encode($data);

}

Ajax代码

$(".submit").click(function(event) {
event.preventDefault();
    var pro_rowid = $("input#Rowid").val();

        jQuery.ajax({
        type: "POST",
        url: "<?php echo base_url(); ?>" + "admin_customer/customer_cart_update",
        dataType: 'json',
        data: {'rowid': pro_rowid},
        success: function(res) {
           //alert('success !');
            $("#Qty").html();
            $("#Result").html();
        }
    });
});

和我的观看代码

<?php 
                    $a=1;
                    foreach ($this->cart->contents() as $cart_item){?>
                    <li>
                        <ul class="Sub-Cart">
                            <li><a href=""><img src="<?php echo base_url()?>upload/<?php echo $cart_item['options']['Image'];?>"/></a></li>
                            <li><a href=""><?php echo $cart_item['name'];?> <?php echo $cart_item['options']['Size'];?>  <?php echo $cart_item['options']['Color'];?></a> <a href="<?php echo base_url()?>admin_customer/customer_del_cart/<?php echo $cart_item['rowid'];?>"><i class="fa fa-trash-o" title="Xoa"></i></a></li>
                            <input type="hidden" name='rowid<?php echo $a;?>' id='Rowid' value='<?php echo $cart_item['rowid'] ;?>' />
                            <li><?php echo $cart_item['price'];?> </li>
                            <li>
                                <input id="Qty" type="text" name="qty<?php echo $a;?>" value="<?php echo $cart_item['qty'];?>" min="1" />
                            </li> 
                            <li  id="Result"><?php echo $cart_item['subtotal'];?></li/>

                        </ul>
                    </li>
                    <?php $a++;}?>

我无法更新&#34;数量&#34;进入购物车的内容,有什么不对吗?,以及如何在更新后显示价格和数量的总和?

提前致谢

1 个答案:

答案 0 :(得分:0)

这里有很多错误。您的购物车商品是一个列表,但是ajax并未将其考虑在内,并且数据不会被ajax发送到服务器。 ajax应该以某种方式将数据发送到服务器以便它被接收。

使用选择器输入#Redid是错误的。我无法在代码中看到#Rowid的输入,但如果定义了#Rowid,则无需输入。

您正在迭代视图中的循环,但每次迭代都具有相同的ID。这些必须在DOM中是唯一的,否则会破坏。

我建议你使用一个数组输入名称,这样post应该解决它并发布一个值数组。 祝你好运!