theo dõi

Gần nhất :

Tags

Thống kê câu hỏi

Chuyên mục : Lập trình
Topic : Asp.Net MVC
Hỏi lúc:
Lượt xem: 2,690

Asp.net MVC5 gửi id của sản phẩm lên ajax

Phúc  Ngô Phúc Ngô
 05  01  00
05 bình chọn hữu ích bởi Nguyễn Quốc Lâm, Hồ Hữu Tâm Lý Kiều Hạnh ... (tất cả)

Cho em hỏi tí về ajax e có foreach show ra sản phẩm khi user checkout giỏ hàng e xài ajax để update hoặc xóa sp nó chỉ chạy được khi giỏ hàng mua 1 loại sản phẩm thôi 2 loại sản phẩm trở lên là nó lỗi liền =>chương trình ko biết id của thằng sản phẩm nào.Có cách nào khắc phục trường hợp này ko a e xin cảm ơn

Ajax

$(function () {
    $('#removeItemCheckOut').click(function () {
        var sanPhamSizeId = document.getElementById("productSizeId").value;
        $.ajax({
            url: "/gio-hang/xoa-san-pham/" + sanPhamSizeId,
            type: 'POST',
            success: function () {
                $("#menu_load").load('@Url.Content("~/load-menu.html")');
                $("#master-wrapper").load('@Url.Content("~/gio-hang/chi-tiet-gio-hang.html")');
            }
        });
    });
});

$(function () {
    $('#upQuantity').click(function () {
        var sanPhamSizeId = document.getElementById("productSizeIdCheckOut").value;
        var quantity = document.getElementById("checkoutQuantity").value;
        $.ajax({
            url: "/gio-hang/cap-nhat-gio-hang/" + sanPhamSizeId + "/" + quantity,
            type: 'POST',
            success: function () {
                $("#menu_load").load('@Url.Content("~/load-menu.html")');
                $("#master-wrapper").load('@Url.Content("~/gio-hang/chi-tiet-gio-hang.html")');
            }
        });
    });
});

View

@foreach (var item in cart.Items)
{
    decimal total = item.SoLuong * item.SanPham.GiaBan;
    
    <tr>
        <td><input type="hidden" value="@item.SanPhamSizeID" id="productSizeIdCheckOut" /></td>
        <td class="desc">@item.SanPham.TenSanPham   <a title="Remove Item" class="icon-remove-sign" href="#" id="removeItemCheckOut"></a></td>
        <td>Size :@item.Size.TenSize</td>
        <td class="qty">
            <input type="text" class="tiny-size" value="@item.SoLuong" id="checkoutQuantity" />
            <a href="" class="btn btn-primary higher bold" id="upQuantity">Cập nhật</a>
        </td>
        <td class="price">
            <strong>@string.Format("{0:#,##0 VND}", @item.SanPham.GiaBan)</strong>
        </td>
    </tr>
}
2,690 xem 05 theo dõi 05 hữu ích hỏi –

Bạn biết ai đó có thể trả lời câu hỏi này?. Bạn có thể giúp đỡ bằng cách tìm những người giỏi nhất:

user user user user user

Lê Bảo Tín Lê Bảo Tín
 02  00  01
02 bình chọn hữu ích bởi Huỳnh Quỳnh Nhi Đỗ Quốc Việt

Chào bạn.

Bạn có thể làm theo cách này cho dễ. Đó là tách ra thành nhiều hàm javascript.

function updateCart(id, sl){
    // Code update dựa vào ID & số lượng.
}

Trong Input số lượng, khi user nhập xong thì thực hiện cập nhật luôn

 <input type="text" class="tiny-size" value="@item.SoLuong" id="checkoutQuantity" onkeypress="updateCart(@item.IDSanPham, this.value)"/>

Tương tự đối với xóa sản phẩm

function deleteCart(id){
    // Code xóa sản phẩm trong giỏ hàng
}
<a href="#" onclick="deleteCart(@item.IDSanPham)">Xóa</a>

Edit lại code của bạn một chút nhé

@foreach (var item in cart.Items)
{
    decimal total = item.SoLuong * item.SanPham.GiaBan;

    <tr>
        <td><input type="hidden" value="@item.SanPhamSizeID" id="productSizeIdCheckOut" /></td>
        <td class="desc">@item.SanPham.TenSanPham   <a title="Remove Item" class="icon-remove-sign" href="#" id="removeItemCheckOut"></a></td>
        <td>Size :@item.Size.TenSize</td>
        <td class="qty">
            <input type="text" class="tiny-size" value="@item.SoLuong" id="checkoutQuantity" onkeypress="updateCart(@item.IDSanPham, this.value)"/>
            <a href="" class="btn btn-primary higher bold" id="upQuantity">Cập nhật</a>
        </td>
        <td class="price">
            <strong>@string.Format("{0:#,##0 VND}", @item.SanPham.GiaBan)</strong>
        </td>
        <td><a href="#" onclick="deleteCart(@item.IDSanPham)">Xóa</a></td>
    </tr>
}
2,451 xem 02 hữu ích trả lời –