@PhanNhuHuyen thông thường phần cập nhật số lượng sản phẩm này sẽ gửi qua ajax và bạn cần viết code bên javascript để xử lý việc lấy ra id và số lượng sản phẩm muốn cập nhật. về Id thì khi trả về giao diện bạn có thể gán nó vào cái button cộng kia luôn như sau:
Trên là session và giỏ hàng (2 sp) của mình.giờ mình muốn thây đổi số lượng sp (1 trong 2 sp hoặc cả 2 sp),thì làm sao mình lấy đc id sp mà mình thay đổi số lượng và update số lượng đã thay đổi ntn ạ
@PhanNhuHuyen Bạn có thể dùng ajax. Đầu tiên bạn đặt 1 attribute cho thẻ của bạn. Chẳng hạn như thẻ <tr productId='id san pham o day'>. Sau đó bạn get attribute để lấy được id đó. Mỗi lần click + hoặc - kia bạn đồng thời gửi request lên, và gửi kèm theo cái id bạn lấy được. Còn tất cả dữ liệu của bạn chỉ được lưu khi bạn click vào nút cập nhập giỏ hàng hay gì đó thì mỗi lần update chắc bạn sẽ phải ghi đè lại toàn bộ dữ liệu
@PhanNhuHuyen Giờ bạn lấy session đó về. Rồi dùng mấy hàm xử lý mảng update những thứ cần thiết rồi bạn lại update cái data mới kia vào session kia. Còn bạn có thể nói rõ là bạn đang vướng mắc ở đoạn nào không. Ví dụ như là không biết làm thế nào để sửa dữ liệu trong mảng chẳng hạn
@PhanNhuHuyen thì như trên đó bạn, khi người ta click update 1 mặt hàng, bạn cần lấy ID của mặt hàng đó, tìm trong mảng session, tìm được rồi thì bạn cộng số lượng theo như key ở trên lên 1, rồi gán lại vào function session()
còn tổng số mặt hàng đang có trong giỏi thì bạn cũng làm tương tự, lấy toàn bộ session giỏ hàng ra, dùng vòng foreach cộng tất cả số lượng lại
Trong trường hợp update giỏ hàng thì bạn chỉ cần cập nhật lại là:
session()->put("cart.product-$productId.quantity",session()->get("cart.product-$productId.quantity")+1,// bạn có thể thay 1 bằng số lượng công thêm mong muốn);
Với $productId sẽ là ID tương ứng của product của bạn
THẢO LUẬN
Lỗi rất clear mà: sai cú pháp
Nếu bạn muốn tìm lỗi giúp thì cho mình xin query tạo bảng nhé
có vẻ bạn đang viết sai syntax trong câu truy vấn rồi thì phải.
Kool Boy viết bài thật là hay quá
@tuanphamle112 Bạn giỏi quá ạ, cho mình info để tiện ib ko ạ
dạ e cảm ơn,để e tìm hiểu và làm ạ
@PhanNhuHuyen thông thường phần cập nhật số lượng sản phẩm này sẽ gửi qua ajax và bạn cần viết code bên javascript để xử lý việc lấy ra id và số lượng sản phẩm muốn cập nhật. về Id thì khi trả về giao diện bạn có thể gán nó vào cái button cộng kia luôn như sau:
Sau đó bên javascript giả sử bạn dùng jquery thì có thể viết:
@PhanNhuHuyen ok bạn. Có gì không hiểu bạn cứ hỏi. Mọi người trên này sẽ giúp đỡ bạn
hi,mình cảm ơn.để mình làm thử xem dc ko ajax mình khá yếu
(like) https://viblo.asia/p/dong-trinh-duyet-session-mat-hieu-the-nao-cho-dung-07LKXBXrlV4#_quay-lai-van-de-4 chắc đọc phần này thôi bác nhỉ
@PhanNhuHuyen Bạn có thể dùng ajax. Đầu tiên bạn đặt 1 attribute cho thẻ của bạn. Chẳng hạn như thẻ <tr productId='id san pham o day'>. Sau đó bạn get attribute để lấy được id đó. Mỗi lần click + hoặc - kia bạn đồng thời gửi request lên, và gửi kèm theo cái id bạn lấy được. Còn tất cả dữ liệu của bạn chỉ được lưu khi bạn click vào nút cập nhập giỏ hàng hay gì đó thì mỗi lần update chắc bạn sẽ phải ghi đè lại toàn bộ dữ liệu
Đọc lướt qua là hiểu, ai biểu đọc kỹ quá chi không hiểu. Bài này đọc 1 phút
)
@PhanNhuHuyen Giờ bạn lấy session đó về. Rồi dùng mấy hàm xử lý mảng update những thứ cần thiết rồi bạn lại update cái data mới kia vào session kia. Còn bạn có thể nói rõ là bạn đang vướng mắc ở đoạn nào không. Ví dụ như là không biết làm thế nào để sửa dữ liệu trong mảng chẳng hạn
@PhanNhuHuyen thì như trên đó bạn, khi người ta click update 1 mặt hàng, bạn cần lấy ID của mặt hàng đó, tìm trong mảng session, tìm được rồi thì bạn cộng số lượng theo như key ở trên lên 1, rồi gán lại vào function
session()còn tổng số mặt hàng đang có trong giỏi thì bạn cũng làm tương tự, lấy toàn bộ session giỏ hàng ra, dùng vòng foreach cộng tất cả số lượng lại@PhanNhuHuyen vậy thì bạn chỉ cần tạo 1 cái session có dạng như này mỗi khi người ta thêm mới một sản phẩm vào giỏ hàng:
Trong trường hợp update giỏ hàng thì bạn chỉ cần cập nhật lại là:
Với $productId sẽ là ID tương ứng của product của bạn
cái mình cần giải quyết là update đó bạn, vẫn chưa update đc
mình đã lưu đc các mặt hàng trong session rồi a, vấn đề ở đây là lưu số lượng trong session ta đã thay đổi ạ
đúng rồi ạ. mặc định sẽ là 1 và nếu thêm ( + ) 1 nữa thì sẽ giữ số lượng = 2 ạ