Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com array


ju_rezende

Pergunta

Boa tarde pessoal, estou tentando fazer um carrinho de compras com session, porém é aprimeira vez que estou usando array, e está dando erro e não estou conseguindo identificar meu erro.

erro

Microsoft VBScript runtime error '800a0009'

Subscript out of range: 'ubound'

/NovoHtml/carrinho.asp, line 223

vou postar meu codigo pra vs

<tr>

<td width="786" height="49" align="left" valign="top" alt="">

<%

const consCodigo= 0

const consNome=1

const consSabor=2

const consValorDe=3

const consValorPara=4

const consQuantidade=5

const consDesconto=6

if not isarray(session("carrinho")) then

dim LocalCarrinho(6, 20)

else

LocaCarrinho=session("carrinho")

end if

'recuperando dados dos produtos

codigo=request.form("codigo")

produtoNome=request.form("Produto")

Sabor=request.form("sabor")

valor=request.form("valor")

valorDe=request.form("valorDe")

valorPara=request.form("valorPara")

quantidade=1

if valorDE<>"" then

desconto=VelorDE-valorPara

end if

if codigo <>"" then

foundIt=false

for i=0 to ubound(localcarrinho)

if localcarrinho (consCodigo,i) = codigo then ' se tiver este codigo soma mais 1 na quantidade

localcarrinho(consQuantidade,i)= localcarrinho(consQuantidade,i)+1

foundIt=true

exit for

end if

next

if not foundIt then

for i=0 to ubound(localcarrinho, 4)'verificando o preço LINHA 223

if localcarrinho(consCodigo, i)="" then

localcarrinho(consCodigo, i)=codigo

localcarrinho(consNome, i)=produtoNome

localcarrinho(consValorPara, i)=valorPara

localcarrinho(consQuantidade,i)=1

localcarrinho(consSabor,i)= Sabor

localcarrinho(consDesconto,i)=desconto

exit for

end if

next

end if

end if

'alterando quantidades

if request("AlteraQuantidade") <> "" then

for i=0 to ubound(localcarrinho, 4)

novaQuant=trim(request("porque" & localcarrinho(consCodigo, i))) 'do campo para alterar quantidade

deletaProduto=trim(request("pd" & localcarrinho(consCodigo, i))) 'do checkbox deletar produto

if novaQuant= "" or novaQuant="0" or deletaProduto<>"" then

localcarrinho(consCodigo, i) = ""

else

if isNumeric(novaQuant) then

localcarrinho(consCodigo, i)=novaQuant

end if

end if

Next

End if

'copiando o conteudo do array para uma variável

Session("carrinho")=localcarrinho

ValorTotal=0

%>

<table width="786" height="25" border="0" cellpadding="0" cellspacing="0">

<form method="post" action="carrinho.asp" >

o html todo eu não postei porque ficaria muito grande

Desde já fico muito grata pela atenção de todos

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

veja onde você declara:

dim LocalCarrinho(6, 20)

LocalCarrinho é uma matriz de 2 dimensoes. o ubound com o ", 4" tenta acessar a quarte dimensao do array. por isso ocorre o erro, já q ele só tem duas.

não sei direito no seu codigo se você precisa da primeira ou da segunda dimensao. então troque o 4 por 1 ou 2 dependendo do q você precisa (se for 1 não precisa passar o segundo parametro).

Link para o comentário
Compartilhar em outros sites

  • 0

olá kuroi, fiz a alterção como informado, porém possou a me mostrar outro erro

erro

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'ubound'

/novoHtml/carrinho.asp, line 215

meu codigo

const consCodigo= 0

const consNome=1

const consSabor=2

const consValorDe=3

const consValorPara=4

const consQuantidade=5

const consDesconto=6

if not isarray(session("carrinho")) then

dim LocalCarrinho(6, 20)

else

LocaCarrinho=session("carrinho")

end if

'recuperando dados dos produtos

codigo=request.form("codigo")

produtoNome=request.form("Produto")

Sabor=request.form("sabor")

valor=request.form("valor")

valorDe=request.form("valorDe")

valorPara=request.form("valorPara")

quantidade=1

if valorDE<>"" then

desconto=VelorDE-valorPara

end if

if codigo <>"" then

foundIt=false

for i=0 to ubound(localcarrinho)Linha 215

if localcarrinho (consCodigo,i) = codigo then ' se tiver este codigo soma mais 1 na quantidade

localcarrinho(consQuantidade,i)= localcarrinho(consQuantidade,i)+1

foundIt=true

exit for

end if

next

if not foundIt then

for i=0 to ubound(localcarrinho,2)'antes ubound(localcarrinho, 4) verificando o preço

if localcarrinho(consCodigo, i)="" then

localcarrinho(consCodigo, i)=codigo

localcarrinho(consNome, i)=produtoNome

localcarrinho(consValorPara, i)=valorPara

localcarrinho(consQuantidade,i)=1

localcarrinho(consSabor,i)= Sabor

localcarrinho(consDesconto,i)=desconto

exit for

end if

next

end if

end if

'alterando quantidades

if request("AlteraQuantidade") <> "" then

for i=0 to ubound(localcarrinho,2) 'antes ubound(localcarrinho, 4)

novaQuant=trim(request("porque" & localcarrinho(consCodigo, i))) 'do campo para alterar quantidade

deletaProduto=trim(request("pd" & localcarrinho(consCodigo, i))) 'do checkbox deletar produto

if novaQuant= "" or novaQuant="0" or deletaProduto<>"" then

localcarrinho(consCodigo, i) = ""

else

if isNumeric(novaQuant) then

localcarrinho(consCodigo, i)=novaQuant

end if

end if

Next

End if

'copiando o conteudo do array para uma variável

Session("carrinho")=localcarrinho

ValorTotal=0

%>

<table width="786" height="25" border="0" cellpadding="0" cellspacing="0">

<form method="post" action="carrinho.asp" >

<input name="AlteraQuantidade" type="hidden" value="1" />

<%

for i=0 to ubound(localcarrinho, 2 )

if localcarrinho(consCodigo, i) <> "" then

ValorTotal= ValorTotal+ localcarrinho(consValorPara, i) * localcarrinho(consQuantidade, i)

%>

Link para o comentário
Compartilhar em outros sites

  • 0

olá kuroi, valeu mesmo era essa a falha, desculpe não ter repondido ontem, mas fiquei sem net o dia todo, hj pela manhã foi a primeira coisa que olhei,

ele tá funcionando sim, mas estou apenas com um problema, ele não está recuperando o valor unitário vou tentar achar o erro, mas caso consiga ver primeio que eu me avisa, vou postar o codigo e ir tentando achar o erro, gostaria de saber se da forma como trabalhei com as session, está correto, ou se posso ter problemas com o codigo que estou usando, se puder me orintar,

Desde já muito, muito mesmo grata por tudo.

Grande braço

cont meu codigo

produto.asp

<form action="carrinho.asp" method="post" >

<input name="codigo" type="hidden" value="<%=request.querystring ("codigo")%>" />

<input name="Produto" type="hidden" value="<%=rs("produto")%>" />

<input name="valorDe" type="hidden" value="<%=rs("ValorDE")%>" />Valor Unitário

<input name="valorPara" type="hidden" value="<%=rs ("ValorPara")%>" />

<input name="image" type="image" onclick="document.getElementById('procurar').submit()" src="images/comprar.jpg" alt= "Comprar" img="img" />

Carrinho.asp

const consCodigo= 0

const consNome=1

const consSabor=2

const consValorDe=3

const consValorPara=4

const consQuantidade=5

const consDesconto=6

if not isarray(session("carrinho")) then

dim LocalCarrinho(6, 20)

else

LocalCarrinho=session("carrinho")

end if

'recuperando dados dos produtos

codigo=request.form("codigo")

produtoNome=request.form("Produto")

Sabor=request.form("sabor")

valor=request.form("valor")

valorDe=request.form("valorDe")

valorPara=request.form("valorPara")

quantidade=1

if valorDE<>"" then

desconto=VelorDE-valorPara

end if

if codigo <>"" then

foundIt=false

for i=0 to ubound(localcarrinho,2)

if localcarrinho (consCodigo,i) = codigo then ' se tiver este codigo soma mais 1 na quantidade

localcarrinho(consQuantidade,i)= localcarrinho(consQuantidade,i)+1

foundIt=true

exit for

end if

next

if not foundIt then

for i=0 to ubound(localcarrinho,2)'antes ubound(localcarrinho, 4) verificando o preço

if localcarrinho(consCodigo, i)="" then

localcarrinho(consCodigo, i)=codigo

localcarrinho(consNome, i)=produtoNome

localcarrinho(consValorPara, i)=valorPara

localcarrinho(consQuantidade,i)=1

localcarrinho(consSabor,i)= Sabor

localcarrinho(consDesconto,i)=desconto

exit for

end if

next

end if

end if

'alterando quantidades

if request("AlteraQuantidade") <> "" then

for i=0 to ubound(localcarrinho,2) 'antes ubound(localcarrinho, 4)

novaQuant=trim(request("porque" & localcarrinho(consCodigo, i))) 'do campo para alterar quantidade

deletaProduto=trim(request("pd" & localcarrinho(consCodigo, i))) 'do checkbox deletar produto

if novaQuant= "" or novaQuant="0" or deletaProduto<>"" then

localcarrinho(consCodigo, i) = ""

else

if isNumeric(novaQuant) then

localcarrinho(consCodigo, i)=novaQuant

end if

end if

Next

End if

'copiando o conteudo do array para uma variável

Session("carrinho")=localcarrinho

ValorTotal=0

%>

<table width="786" height="25" border="0" cellpadding="0" cellspacing="0">

<form method="post" action="carrinho.asp" >

<input name="AlteraQuantidade" type="hidden" value="1" />

<%

for i=0 to ubound(localcarrinho, 2 )

if localcarrinho(consCodigo, i) <> "" then

ValorTotal= ValorTotal+ localcarrinho(consValorPara, i) * localcarrinho(consQuantidade, i)

%>

<tr>

<td width="330" height="25" align="left" valign="middle" alt=""><span class="style1"><%=localcarrinho(consNome, i)%></span></td>

<td width="2" height="25" bgcolor="#f5f5f5" alt=""></td>

<td width="92" height="25" align="center" valign="middle" class="style1" alt=""><input name="porque <%=localcarrinho(consCodigo, i)%>" type="text" size="5" value="<%=localcarrinho(consQuantidade, i)%>" />

<input name="porque <%=localcarrinho(consCodigo, i)%>" type="text" size="5" value="<%=localcarrinho(consQuantidade, i)%>" />

<td width="84" height="25" align="center" valign="middle" class="style1" alt=""><%=formatcurrency(localcarrinho(consValorDe, i))%></td>

<td width="2" height="25" bgcolor="#f5f5f5" alt=""></td>

<td width="100" height="25" align="center" valign="middle" class="style1" alt=""><%=formatCurrency(localcarrinho(consDesconto, i))%></td>

<td width="2" height="25" bgcolor="#f5f5f5" alt=""></td>

<td width="84" height="25" align="center" valign="middle" alt=""><span class="style1"><%=formatCurrency(localcarrinho(consValorPara, i))%></span></td>

<td width="2" height="25" bgcolor="#f5f5f5" alt=""></td>

<td width="86" height="25" align="center" valign="middle" alt="">

<input name="pd<%=localcarrinho(consCodigo, i)%>" type="checkbox" value="1" />

<img src="images/remover_item.jpg" alt="" width="25" height="23" /></td>

</tr>

<%end if

Next%>

Bom dia Kuroi, primeiramente fico grata por tudo mesmo, este esta era a falha mesmo, agora parou de dar o erro, porém eu continuo com um problema, não estou conseguindo recuperar o Valor Unitário do produto, vou tentar visualizar onde está meu erro, mas caso o veja primeiro se puder me informar fico muito grata mesmo.

Gostaria de saber se forma como estou fazendo este carrinho está correta e se não terei problemas futuros com ele, pergunto porque é a primeira vez que faço um e-comerce, e não tenho tanta experiência, caso o meu esteja incorreto, se puder me orientar como devo fazer, fico muito grata.

Vou postar meu codigo para análise

produto.asp

<form action="carrinho.asp" method="post" >

<input name="codigo" type="hidden" value="<%=request.querystring ("codigo")%>" />

<input name="Produto" type="hidden" value="<%=rs("produto")%>" />

<input name="valorDe" type="hidden" value="<%=rs("ValorDE")%>" />valor unitário <input name="valorPara" type="hidden" value="<%=rs ("ValorPara")%>" />

<input name="image" type="image" onclick="document.getElementById('procurar').submit()" src="images/comprar.jpg" alt= "Comprar" img="img" />

Carrinho.asp

const consCodigo= 0

const consNome=1

const consSabor=2

const consValorDe=3

const consValorPara=4

const consQuantidade=5

const consDesconto=6

if not isarray(session("carrinho")) then

dim LocalCarrinho(6, 20)

else

LocalCarrinho=session("carrinho")

end if

'recuperando dados dos produtos

codigo=request.form("codigo")

produtoNome=request.form("Produto")

Sabor=request.form("sabor")

valor=request.form("valor")

valorDe=request.form("valorDe")

valorPara=request.form("valorPara")

quantidade=1

if valorDE<>"" then

desconto=VelorDE-valorPara

end if

if codigo <>"" then

foundIt=false

for i=0 to ubound(localcarrinho,2)

if localcarrinho (consCodigo,i) = codigo then ' se tiver este codigo soma mais 1 na quantidade

localcarrinho(consQuantidade,i)= localcarrinho(consQuantidade,i)+1

foundIt=true

exit for

end if

next

if not foundIt then

for i=0 to ubound(localcarrinho,2)'antes ubound(localcarrinho, 4) verificando o preço

if localcarrinho(consCodigo, i)="" then

localcarrinho(consCodigo, i)=codigo

localcarrinho(consNome, i)=produtoNome

localcarrinho(consValorPara, i)=valorPara

localcarrinho(consQuantidade,i)=1

localcarrinho(consSabor,i)= Sabor

localcarrinho(consDesconto,i)=desconto

exit for

end if

next

end if

end if

'alterando quantidades

if request("AlteraQuantidade") <> "" then

for i=0 to ubound(localcarrinho,2) 'antes ubound(localcarrinho, 4)

novaQuant=trim(request("porque" & localcarrinho(consCodigo, i))) 'do campo para alterar quantidade

deletaProduto=trim(request("pd" & localcarrinho(consCodigo, i))) 'do checkbox deletar produto

if novaQuant= "" or novaQuant="0" or deletaProduto<>"" then

localcarrinho(consCodigo, i) = ""

else

if isNumeric(novaQuant) then

localcarrinho(consCodigo, i)=novaQuant

end if

end if

Next

End if

'copiando o conteudo do array para uma variável

Session("carrinho")=localcarrinho

ValorTotal=0

%>

<form method="post" action="carrinho.asp" >

<input name="AlteraQuantidade" type="hidden" value="1" />

<%

for i=0 to ubound(localcarrinho, 2 )

if localcarrinho(consCodigo, i) <> "" then

ValorTotal= ValorTotal+ localcarrinho(consValorPara, i) * localcarrinho(consQuantidade, i)

%>

<tr>

<td width="330" height="25" align="left" valign="middle" alt=""><span class="style1"><%=localcarrinho(consNome, i)%></span></td>

<td width="2" height="25" bgcolor="#f5f5f5" alt=""></td>

<td width="92" height="25" align="center" valign="middle" class="style1" alt=""><input name="porque <%=localcarrinho(consCodigo, i)%>" type="text" size="5" value="<%=localcarrinho(consQuantidade, i)%>" />

<td width="2" height="25" bgcolor="#f5f5f5" alt=""></td>

<td width="84" height="25" align="center" valign="middle" class="style1" alt=""><%=formatcurrency(localcarrinho(consValorDe, i))%></td>

<td width="2" height="25" bgcolor="#f5f5f5" alt=""></td>

<td width="100" height="25" align="center" valign="middle" class="style1" alt=""><%=formatCurrency(localcarrinho(consDesconto, i))%></td>

<td width="2" height="25" bgcolor="#f5f5f5" alt=""></td>

<td width="84" height="25" align="center" valign="middle" alt=""><span class="style1"><%=formatCurrency(localcarrinho(consValorPara, i))%></span></td>

<td width="2" height="25" bgcolor="#f5f5f5" alt=""></td>

<td width="86" height="25" align="center" valign="middle" alt="">

<input name="pd<%=localcarrinho(consCodigo, i)%>" type="checkbox" value="1" />

<img src="images/remover_item.jpg" alt="" width="25" height="23" /></td>

</tr>

<%end if

Next%>

</form>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...