ju_rezende Postado Julho 1, 2008 Denunciar Share Postado Julho 1, 2008 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 grandeDesde já fico muito grata pela atenção de todos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Julho 1, 2008 Denunciar Share Postado Julho 1, 2008 não entendi porque o , 4não era pra fazer so assim??for i=0 to ubound(localcarrinho) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Julho 1, 2008 Autor Denunciar Share Postado Julho 1, 2008 olá kuroi, eu não sei porque ele usa este 4, eu estou lendo um livro aprenda em 21 dias e-comerce com asp, e como é a primeira vez estou seguindo ele a risca, mas tá muito confuso pra mim Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Julho 1, 2008 Denunciar Share Postado Julho 1, 2008 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). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Julho 2, 2008 Autor Denunciar Share Postado Julho 2, 2008 ok vou tentar para ver se funciona, desde já grata Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Julho 2, 2008 Autor Denunciar Share Postado Julho 2, 2008 olá kuroi, fiz a alterção como informado, porém possou a me mostrar outro erroerroMicrosoft 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) %> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Julho 2, 2008 Denunciar Share Postado Julho 2, 2008 estranho. tente trocar essa linha porfor i=0 to ubound(localcarrinho, 1) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Julho 2, 2008 Autor Denunciar Share Postado Julho 2, 2008 kuroi, eu fiz a alteração que me falou, não deu erro mais porém não foi armazenando o valor do produto Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Julho 2, 2008 Autor Denunciar Share Postado Julho 2, 2008 kuroi, ele funcionou apenas uma vez, depois voltou a dar o mesmo problemas Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Julho 2, 2008 Autor Denunciar Share Postado Julho 2, 2008 erro Microsoft VBScript runtime error '800a000d'Type mismatch: 'ubound'/novoHtml/carrinho.asp, line 258 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Julho 3, 2008 Denunciar Share Postado Julho 3, 2008 então juliana, o erro deve estar nessa linha:LocaCarrinho=session("carrinho")você escreve locacarrinho, mas o nome da variavel é localcarrinho com L. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Julho 4, 2008 Autor Denunciar Share Postado Julho 4, 2008 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çocont meu codigoproduto.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.aspconst 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 ifNext%>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áliseproduto.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.aspconst 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> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Julho 4, 2008 Autor Denunciar Share Postado Julho 4, 2008 Kuroi, consegui arrumar o valor Para achei meu erro, agora vou tentar arrumar o subtotal Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ju_rezende Postado Julho 4, 2008 Autor Denunciar Share Postado Julho 4, 2008 Olá kuroi, poderia me ajudar a fazer o botão excluir item do carrinho de compra, não precisa fazer o código, só me orientar pra eu tentar fazer?Grata abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ju_rezende
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
vou postar meu codigo pra vso 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
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.