10/10/2018, 10:22

Thêm hàng vào giỏ hàng.. làm ơn Giúp mình với

Mình đang làm shop bán hàng bằng asp, mong được các bạn giúp đỡ, như sau:

Trên hiện hành (đang mở) có 1 mục là giỏ hàng (chứa số lượng các hàng đã đặt mua)
Khi người dùng nhấn vào nút "Add to card" thì hàng được đưa vào giỏ hàng (cái này mình làm được rồi, mình dùng biến session)
Và sau khi thêm hàng vào thì dĩ nhiên mục giỏ hàng trên trang hiện hành cũng phải cập nhật theo
Giông như trang này nè:
http://www.confidantvcd.com/

Mình đã nghĩ nát óc mà vẫn ko biết phải làm thế nào, mình nghĩ là sau khi thêm hàng vào thì trang hiện hành sẽ refresh lại, suy nghĩ thì vậy thôi nhưng minh ko biết làm sao

Bạn nào có thể giúp mình được ko, mình đang cần gấp lắm.
Cám ơn các bạn rất nhiều
thanchetkenji viết 12:37 ngày 10/10/2018
Sử dụng Mãng [ Array ].
1. Thêm hàng. [Array]tăng giá trị và chứa tên hàng
2. Đếm số lượng hàng, bằng cách sử dụng hàm đếm tổng số lượng biến trong mảng.
3. Cập nhật hàng thì chỉ việc cập nhật thông tin trong mảng. Kết hợp cùng Array của các biến trong Form.

Toàn bộ trên đều sử dụng $_SESSION[''] trong PHP 4.x trở lên.
NDThuan viết 12:28 ngày 10/10/2018
asp mà thần chết!

1. Cần có một mảng hoặc tạo đối tượng Dictionary để lưu trữ
2. Cái mảng hoặc Dictionary đó được lưu vào Session
3. Khi người ta thêm, nếu dùng mảng thì phải dùng cái ReDim... Nếu dùng Dictionary thì dùng cái chức năng Add gì đó tớ quên mất rồi
4. Việc hiển thị thì duyệt cái array hay dictionary đó là ra mà

Nếu kô cập nhật được thì vấn đề lúc bạn add to cart rồi,

Nếu chưa thuần thục lắm bạn nên nghiên cứu thêm các source code
saigonpho viết 12:25 ngày 10/10/2018
cám ơn các bạn đã trả lời mình, nhưng ý mình ko phải vậy...
Các bạn có để ý là ở hầu hết cái shop, khi ta nhấn add to card thì website sẽ chuyển đến trang giohang.asp (ví dụ vậy). Nhưng ý mình muốn là khi người dùng nhấn vào add to card thì ko mở ra trang khác mà tên hàng được thêm vô trong giỏ hàng (giỏ hàng này được hiển thị ngay trên trang chủ). Tức là khi nhấn vô add to card thì website chỉ thay đổi phần giỏ hàng trên trang chủ chứ ko mở ra 1 trang mới.
Cái này mình chỉ thấy cái http://www.confidantvcd.com/ là làm được, hình như nó sài javascript hay sao ấy, còn làm bằng asp hay php đơn thuần thì chắc pó tay
NDThuan viết 12:37 ngày 10/10/2018
ừ thì đấy là javascripts bạn view source mà chôm
thanchetkenji viết 12:25 ngày 10/10/2018
APS hả ? ko có xem kĩ, tưởng PHP, hì hì !
saigonpho viết 12:36 ngày 10/10/2018
ặc ặc, có ai ko, làm ơn chỉ tui với
daircv viết 12:26 ngày 10/10/2018
1/Global.asa

<Script Language="VBScript" Runat="Server">
SUB Session_OnStart
const MaxShoppingCart = 15
ReDim arrProduct(6,MaxShoppingCart)
session("myProduct") = arrProduct
session("iCount") = 0
END SUB
</Script>

2/default.asp

<table border="0" width="766px">
<tr>
<td width="520px"><!--#include virtual="../Product/Product.asp"--></td>
<td width="245px"><!--#include virtual="../Product/Cart.asp"-->
</tr>
</table>

*/ Tiếp theo bạn thiết kế thêm 3 trang sau:
- Product.asp 'Hiển thị sản phẩm cho người dùng lựa chọn để AddToCart
- Cart.inc 'Các hàm cần sử dụng cho giỏ hàng
- Cart.asp 'Hiển thị sản phẩm trong giỏ hàng

3/Cart.inc
<%
Sub AddProductToCart(ProductID)
arrProduct = session("myProduct")
iCount = session("iCount")
vExist = false
For i = 1 to iCount
ProductID = Request.QueryString("ProductID")
CategoryName = Request.QueryString("CategoryName")
'.....
If arrProduct(1,i) = ProductID Then
Exist = true
arrProduct(4,i) = arrProduct(4,i) + 1
Exit For
End If
Next
If not Exist then
If iCount < MaxShoppingCart then
iCount = iCount + 1
End If
arrProduct(1,Count) = ProductID
arrProduct(2,Count) = ProductName
arrProduct(3,Count) = CategoryName
arrProduct(4,Count) = 1
arrProduct(5,Count) = CLng(Price)
arrProduct(6,Count) = 0
End if
session("myProduct") = arrProduct
session("iCount") = iCount
End Sub
Sub RemoveProductItem(ProductID)
arrProduct = Session("myProduct")
iCount = Session("iCount")
Exist = false
For i = 1 to iCount
If arrProduct(1,i) = ProductID Then
Exist = true
Exit For
End if
Next
If Exist Then
iCount = iCount - 1
For x = 1 to 6
arrProduct(x,i) = ""
Next
n = i
while n < 15
For x = 1 to 6
arrProduct(x,n) = arrProduct(x,n+1)
arrProduct(x,n+1) = ""
Next
n=n+1
Wend
End if
session("myProduct") = arrProduct
session("iCount") = iCount
End Sub
Sub RemoveAll
session("myProduct") = ""
session("iCount") = ""
Snd Sub
Sub UpdateQuantity(ProductID,Quantity)
arrProduct = session("myProduct")
iCount = Session("iCount")
For i = 1 to iCount
If arrProduct(1,i) = ProductID then
arrProduct(4,i) = Quantity
Exit For
End if
Next
session("mtProduct") = arrProduct
session("iCount") = iCount
End Sub
%>

4/Cart.asp

<!--#include virtual="../Product/Cart.inc"-->
<%
Session.CodePage=65001
Response.Charset="UTF-8"
If iCount > 0 Then
For i = 1 to iCount
Response.Write("Sản phẩm: "&arrProduct(1,i)&"<br>")
Response.Write("Đơn giá: "&arrProduct(5,i)&"<br>")
Response.Write("Số lượng: "&arrProduct(4,i)&"<br>")
Next
End If
%>

*// Mình đảm bảo cái giỏ hàng này chắc chắn sẽ xuất hiện trên trang hiện hành khi nhấp chọn nút Add To Cart như mong muốn của bạn.
*// Chúc bạn thành công, phần còn lại của giỏ hàng bạn thiết kế tiếp nha...

[=========> Bổ sung bài viết <=========]

Được gửi bởi saigonpho
Mình đang làm shop bán hàng bằng asp, mong được các bạn giúp đỡ, như sau:

Trên hiện hành (đang mở) có 1 mục là giỏ hàng (chứa số lượng các hàng đã đặt mua)
Khi người dùng nhấn vào nút "Add to card" thì hàng được đưa vào giỏ hàng (cái này mình làm được rồi, mình dùng biến session)
Và sau khi thêm hàng vào thì dĩ nhiên mục giỏ hàng trên trang hiện hành cũng phải cập nhật theo
Giông như trang này nè:
http://www.confidantvcd.com/

Mình đã nghĩ nát óc mà vẫn ko biết phải làm thế nào, mình nghĩ là sau khi thêm hàng vào thì trang hiện hành sẽ refresh lại, suy nghĩ thì vậy thôi nhưng minh ko biết làm sao

Bạn nào có thể giúp mình được ko, mình đang cần gấp lắm.
Cám ơn các bạn rất nhiều
Giỏ hàng bằng asp hiển thị ngay trên trang hiện hành nè!

--------------------------------------------------------------------------------

1/Global.asa

<Script Language="VBScript" Runat="Server">
SUB Session_OnStart
const MaxShoppingCart = 15
ReDim arrProduct(6,MaxShoppingCart)
session("myProduct") = arrProduct
session("iCount") = 0
END SUB
</Script>

2/default.asp

<table border="0" width="766px">
<tr>
<td width="520px"><!--#include virtual="../Product/Product.asp"--></td>
<td width="245px"><!--#include virtual="../Product/Cart.asp"-->
</tr>
</table>

*/ Tiếp theo bạn thiết kế thêm 3 trang sau:
- Product.asp 'Hiển thị sản phẩm cho người dùng lựa chọn để AddToCart
- Cart.inc 'Các hàm cần sử dụng cho giỏ hàng
- Cart.asp 'Hiển thị sản phẩm trong giỏ hàng

3/Cart.inc
<%
Sub AddProductToCart(ProductID)
arrProduct = session("myProduct")
iCount = session("iCount")
vExist = false
For i = 1 to iCount
ProductID = Request.QueryString("ProductID")
CategoryName = Request.QueryString("CategoryName")
'.....
If arrProduct(1,i) = ProductID Then
Exist = true
arrProduct(4,i) = arrProduct(4,i) + 1
Exit For
End If
Next
If not Exist then
If iCount < MaxShoppingCart then
iCount = iCount + 1
End If
arrProduct(1,Count) = ProductID
arrProduct(2,Count) = ProductName
arrProduct(3,Count) = CategoryName
arrProduct(4,Count) = 1
arrProduct(5,Count) = CLng(Price)
arrProduct(6,Count) = 0
End if
session("myProduct") = arrProduct
session("iCount") = iCount
End Sub
Sub RemoveProductItem(ProductID)
arrProduct = Session("myProduct")
iCount = Session("iCount")
Exist = false
For i = 1 to iCount
If arrProduct(1,i) = ProductID Then
Exist = true
Exit For
End if
Next
If Exist Then
iCount = iCount - 1
For x = 1 to 6
arrProduct(x,i) = ""
Next
n = i
while n < 15
For x = 1 to 6
arrProduct(x,n) = arrProduct(x,n+1)
arrProduct(x,n+1) = ""
Next
n=n+1
Wend
End if
session("myProduct") = arrProduct
session("iCount") = iCount
End Sub
Sub RemoveAll
session("myProduct") = ""
session("iCount") = ""
Snd Sub
Sub UpdateQuantity(ProductID,Quantity)
arrProduct = session("myProduct")
iCount = Session("iCount")
For i = 1 to iCount
If arrProduct(1,i) = ProductID then
arrProduct(4,i) = Quantity
Exit For
End if
Next
session("mtProduct") = arrProduct
session("iCount") = iCount
End Sub
%>

4/Cart.asp

<!--#include virtual="../Product/Cart.inc"-->
<%
Session.CodePage=65001
Response.Charset="UTF-8"
If iCount > 0 Then
For i = 1 to iCount
Response.Write("Sản phẩm: "&arrProduct(1,i)&"<br>")
Response.Write("Đơn giá: "&arrProduct(5,i)&"<br>")
Response.Write("Số lượng: "&arrProduct(4,i)&"<br>")
Next
End If
%>

*// Mình đảm bảo cái giỏ hàng này chắc chắn sẽ xuất hiện trên trang hiện hành khi nhấp chọn nút Add To Cart như mong muốn của bạn.
*// Chúc bạn thành công, phần còn lại của giỏ hàng bạn thiết kế tiếp nha...
nobita611 viết 12:27 ngày 10/10/2018
bác nào hướng ẫn mình làm giỏ hàng bằng asp.net mvc zới.
Bài liên quan
0