这是我的控制器代码:
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;进入购物车的内容,有什么不对吗?,以及如何在更新后显示价格和数量的总和?
提前致谢
答案 0 :(得分:0)
这里有很多错误。您的购物车商品是一个列表,但是ajax并未将其考虑在内,并且数据不会被ajax发送到服务器。 ajax应该以某种方式将数据发送到服务器以便它被接收。
使用选择器输入#Redid是错误的。我无法在代码中看到#Rowid的输入,但如果定义了#Rowid,则无需输入。
您正在迭代视图中的循环,但每次迭代都具有相同的ID。这些必须在DOM中是唯一的,否则会破坏。
我建议你使用一个数组输入名称,这样post应该解决它并发布一个值数组。 祝你好运!