簡體   English   中英

在ajax調用上重新加載購物車div | 點火槍

[英]reload cart div on ajax call | Codeigniter

在我的頁面中,有添加到購物車功能,並且我用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); 
    }

您說您已經隱藏了#myCart。 但是fadeIn()不會取消隱藏它。 這是jQuery fadeIn文檔的一部分。

.fadeIn()方法可對匹配元素的不透明度進行動畫處理。 它與.fadeTo()方法類似,但是該方法不會取消隱藏元素,並且可以指定最終的不透明度級別。

也許有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM