私は4つの項目の後、私はまだアイテムを追加することができ、問題がある。この増加配列サイズを動的に
localCart(CARTPID,i) = productId
localCart(CARTPRICE,i) = productPrice
localCart(CARTPQUANTITY,i) = 1
のように動的にこの配列にアイテムを追加
CONST CARTPID = 0
CONST CARTPRICE = 1
CONST CARTPQUANTITY = 2
dim localCart(3,20)
ASP
でこの配列を持っていますUBoundは常に3を返します。これが原因で私の条件が失敗します。実行時にこの配列のサイズを大きくして、UBOUNDが最新の値を返すようにしたいとします。
どうすればいいのか教えてください。二次元が20である間、ここに私の完全なコードは
'Define constants
CONST CARTPID = 0
CONST CARTPRICE = 1
CONST CARTPQUANTITY = 2
'Get the shopping cart.
if not isArray(session("cart")) then
dim localCart(3,20)
else
localCart = session("cart")
end if
'Get product information
productID = trim(request.QueryString("productid"))
productPrice = trim(request.QueryString("price"))
'Add item to the cart
if productID <> "" then
foundIt = false
for i = 0 to ubound(localCart)
if localCart(CARTPID,i) = productId then
localCart(CARTPQUANTITY,i) = localCart(CARTPQUANTITY,i)+1
foundIt = true
exit for
end if
next
if not foundIt then
for i = 0 to 20
if localCart(CARTPID,i) = "" then
***ReDim Preserve localCart(UBound(localCart, 1) + 1,20)***
localCart(CARTPID,i) = productId
localCart(CARTPRICE,i) = productPrice
localCart(CARTPQUANTITY,i) = 1
exit for
end if
next
end if
end if
ありがとう、これは動作しますが、私は値を保持できません。できるだけ早く私は保存ReDimステートメントを使用して、私はこのエラーを取得します。Microsoft VBScriptランタイムエラー「800a0009」 添字エラーが – VJV
はあなたのコードを表示元のメッセージに完全なコードを追加しました。 – Robert
おかげで発生している場所を、私たちが見ることができるので、範囲外の /prices_test.asp、ライン102 – VJV