在 AJAX 呼叫上重新加载购物车 div |代码点火器


在我的

页面中有添加到购物车功能,我用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,以便仅在用户插入或更新新购物车时才显示。一切都很好,直到这里。

但问题是每当我添加新购物车时,购物车在淡入时不会更新。如果我重新加载页面,购物车就会更新。

我什至分离了购物车视图:

购物车.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); 
    }

你说你隐藏了 #myCart。但是 fadeIn() 不会取消隐藏它。这是jQuery fadeIn文档的一部分。

.fadeIn() 方法对匹配元素的不透明度进行动画处理。它类似于 .fadeTo() 方法,但该方法不会取消隐藏元素,并且可以指定最终的不透明度级别。

也许它有帮助。

最新更新