Bài viết này mô tả cách xóa từng sản phẩm và toàn bộ dòng sản phẩm khỏi giỏ hàng bằng cách sử dụng các yêu cầu AJAX
Dòng sản phẩm trong giỏ hàng phải có phần tử có thể nhấp để khởi tạo tập lệnh xóa. Trong ví dụ này, chúng tôi sử dụng đầu ra mặc định của thẻ {Cart}
, trong đó phần tử có thể được tìm thấy dựa trên mã định danh a.CartRemove
Dưới đây, bạn có thể xem ví dụ về triển khai trang giỏ hàng đơn giản hóa
{Cart}
Một sản phẩm được xóa khỏi giỏ hàng bằng cách gửi yêu cầu POST tới địa chỉ /cart/delete/n trong đó ID là n
.
/*
* The removal script is executed after the a.CartRemove element is clicked
*/
$["a.CartRemove"].on["click", function[event] {
event.preventDefault[];
/*
* The ID of the product to be removed is retrieved
* from the link.
*/
productId = $[this].attr["href"].split["/"][3];
/*
* A POST request is sent
*/
$.ajax[{
type: "POST",
url: "/cart/delete/" + productId,
success: function[] {
/*
* The product is now removed and the shopping cart is reloaded
* so that the customer can see the change.
*/
$.ajax[{
type: "GET",
url: "/interface/Cart",
success: function[data] {
$[".CartContainer"].html[data];
}
}];
}
}];
}];
Bạn có thể triển khai nhiều chức năng được kết nối với việc mua hàng bằng cách sử dụng lệnh gọi JavaScript không đồng bộ. Đọc thêm các bài viết sau về hành động không đồng bộ
Tôi đã tạo một giỏ hàng trong đó tôi có thể thêm các mặt hàng vào đó nhưng không thể xóa các mặt hàng trong giỏ hàng. dưới đây là mã của tôi
runQuery["CHỌN * TỪ shop_product WHERE id='". $_GET["product_code"]. "'"]; . trống[$_SESSION["cart_item"]]] { var_dump[$productByCode[0][id]]; . foreach[$_SESSION["cart_item"] as $k => $v] { if[$productByCode[0][id] == $k] $_SESSION["cart_item"][$k]["quantity"] = . nếu[. trống[$_SESSION["cart_item"]]] { foreach[$_SESSION["cart_item"] as $k => $v] { if[$_GET["product_code"] == $k] unset[$_SESSION[" . unset[$_SESSION["cart_item"]];và tôi cũng đang sử dụng ajax để thêm, xóa và làm trống giỏ hàng. đây là mã
Tôi nghĩ rằng có một cái gì đó trong giỏ hàng. php không khớp. vui lòng giúp tôiTrong bài viết thứ 13 của thử thách #4weeksOfShopifyDev, tôi sẽ nói về cách thêm và xóa mặt hàng khỏi giỏ hàng trên trang sản phẩm bằng AJAX
Hãy làm nó
Trong đoạn mã này, chúng tôi đã thêm vào nút giỏ hàng và thêm vào biểu mẫu giỏ hàng
function removeItem[] {
let variantId = cartBtn.getAttribute["data-variant-id"];
$.ajax[{
type: "POST",
url: "/cart/change.js",
dataType: "json",
data: {
id: parseFloat[variantId],
quantity: 0,
},
}].then[[data] => {
cartBtn.textContent = "Add to cart";
cartBtn.removeAttribute["data-variant-id"];
}];
}
mã cuối cùng
Đăng ký bên dưới để nhận thông báo về bài viết mới - Mục lục
- Những chủ đề gần đây
- Tìm kiếm
- Đăng nhập
tên tài khoản
Mật khẩu
nhớ tôi
Đăng nhập
Bạn quên mật khẩu?
Quên tên người dùng?
Tạo tài khoản
- Mục lục
- Những chủ đề gần đây
- Tìm kiếm
- Đăng nhập
tên tài khoản
Mật khẩu
nhớ tôi
Đăng nhập
Bạn quên mật khẩu?
Quên tên người dùng?
Tạo tài khoản
- Diễn đàn
- lưu trữ
- Làm thế nào để?
- Xóa mặt hàng khỏi giỏ hàng bằng Ajax
- Bắt đầu
- Trước đó
- 1
- Tiếp theo
- Chấm dứt
- 1
- lò rèn trí tuệ
- Tác giả chủ đề
- ngoại tuyến
- bài viết. 291
- Cảm ơn bạn đã nhận được. 4
- Hikashop
2 năm 5 tháng trước #321920
-- Phiên bản HikaShop--. 4. 2. 3
-- Phiên bản Joomla --. 3. 9. 19
-- Phiên bản PHP --. 7. 3. 19
Tôi có dòng mặt hàng sau trong giỏ hàng.
Để thay đổi số lượng muốn người dùng nhấp vào biểu tượng làm mới.
Muốn xóa mặt hàng khỏi giỏ hàng và đưa người dùng trở lại trang sản phẩm để họ có thể nhập lại số lượng.
Có thể có những cách khác tốt hơn/đơn giản hơn để đạt được kết quả tương tự.
Nếu tôi cho phép người dùng cập nhật trường số lượng thì nó không cập nhật trọng lượng.
Người dùng đặt hàng 1. 5kg - giỏ hàng hiển thị số lượng 1 và trọng lượng [trường tùy chỉnh] là 1. 5.
Nếu người dùng thay đổi số lượng thành 2 - nhân viên cửa hàng cho rằng họ muốn 2 gói mua 1. 5kg ko 1 bịch 2kg.
Mã tôi có cho việc này trong show_block_cart. php là.