在我的页面中有添加到购物车功能,我用ajax发布购物车表格。
$(document).ready(function(e) {
$('.toCart').click(function (e) {
e.preventDefault();
var id = $(this).closest('.hidden').find('.idHid').text();
$.ajax({
type: "POST",
data:'id='+id,
url: '<?php echo site_url('cart/added/');?>',
success: function(respond)
{
//window.alert(respond);
$('#myCart').fadeIn();
$('#myCart').delay(5000).fadeOut('slow');
}
});
return false;
});
});
购物车div的ID为#myCart
,我尝试隐藏此div,以便仅在用户插入或更新新购物车时显示。一切正常,直到这里。
但问题是每当我添加新购物车时,购物车在淡入时都不会更新。如果我重新加载页面,购物车就会更新。
我甚至将购物车视图分开了:
cart.php:
<!--My Cart-->
<div id="myCart">
<table border="1">
<thead>
<td>No</td>
<td>Name</td>
<td>Price</td>
<td>Qty</td>
<td>Sub Total</td>
</thead>
<?php
if($cart = $this->cart->contents())
{
$i=0;
foreach ($cart as $item)
{
$i++;
echo "<tr>";
echo "<td>".$i."</td>";
echo "<td>".$item['name']."</td>";
echo "<td>".$item['price']."</td>";
echo "<td>".$item['qty']."</td>";
echo "<td>".$item['qty']."</td>";
echo "</tr>";
}
}
?>
</table>
</div>
<!--My Cart-->
请帮身吗?
这是购物车的控制器:
function added()
{
$this->load->model('site_model');
$product = $this->site_model->getCart($this->input->post('id'));
$bag = $this->cart->contents();
$flag = TRUE;
foreach ($bag as $item)
{
if ($item['id'] == $this->input->post('id'))
{
$data = array('rowid'=>$item['rowid'],'qty'=>++$item['qty']);
$this->cart->update($data);
$flag = FALSE;
echo "Cart is update";
$this->load->view('templates/cart', $data);
}
}
if($flag)
{
$cart = array (
'id' => $this->input->post('id'),
'qty' => 1,
'price' => $product->price,
'name' => $product->name
);
$echi = $this->cart->insert($cart);
echo "New Cart is added";
$this->load->view('templates/cart', $cart);
}
//print_r ($echi);
}
答案 0 :(得分:0)
你说你隐藏了#myCart。但是fadeIn()并没有取消隐藏它。 以下是jQuery fadeIn文档的一部分。
.fadeIn()方法可以设置匹配元素的不透明度。它与.fadeTo()方法类似,但该方法不会取消隐藏元素并可以指定最终的不透明度级别。
也许有帮助。