Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alinekelly

Somar Valor de Checkbox

Recommended Posts

Bom to abusando né, mas preciso de mais uma força.Em uma página digamos que de busca. terei varios CHECKBOX não posso precisar quantos, pois serão alimentados por um Banco de dados, portanto irá variar a quantidade de CHECKBOX, nesta pagina de busca o usuario poderá marcar quanto checkbox desejar, na pagina de resultados, gostaria que aparecesse todos o checkbox marcados e fizze uma soma do valor deles. Alguem pode me dar um help TKS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, a minha soluçção é a seguinte: você faz um laço pelos elementos postados pra pagina, se o id/name dele for o de um dos teus checkboxes tu soma o valor dele capisci?

 

algo como:

dim x, dblSomafor each x in Request.form   if Left(x, 9) = "checkbox_" then 'aqui n lembro se é x ou Request(x) no left  :huh: 	  dblSoma = dblSoma + CDbl(Request(x))   end ifnext

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi... Sabe o que é não manjo muito de ASPVou tentar explicar melhor o que quero. A pagina já esta duncionando da seguinte forma:Em uma página de busca o usuario marca o CHECKBOX, que irá passar o ID para a página de resultados, na página de resultados, o RECORDSET é filtrado pelo ID que foi passado pelo Checkbox. até ai beleza esta funcionando.Mas eu preciso de duas outras etapas que ainda não consegui fazer funcionar.Gostaria que o usuário na página de busca pudesse selecionar mais de um CHECKBOX, e que na página de resultados todos eles aparecessem, um em baixo do outro, como se fosse um carrinho de compras. (talves deva usar outra coisa em vez de um checkbox - aceito sugestão)e depois desta etapa funcionando, quero somar os valores de todos os resultados. Gracias

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca todo os cheks com um unico nome e resgata pelo request e divide em Split.x = request("cheks")v = Split(x,",")for i = 0 to Ubound(v) Response.write(v(i)&",")t = Ubound(v) + 1 nextResponse.write("<br>Soma: "& t)Falo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aaaaaa sakei, tu quer concatenar os IDs pra consulta, é isso? Faz assim:

 

dim x, vCB, strIDS'Recupera num vetor os checkboxes postadosvCB = Split(Request(checkboxID) & ",", ",")' Laço pelo vetor de IDsfor x to Lbound(vCB) to Ubound)vCB0  'Se o id é válido...  if Len(Trim(vCB(x))) > 0 then	 'Concatena os IDS	 strIDS = strIDS & vCB(x) & ", "  end ifnext' Retira a virgula que ficara no final da stringstrIDS = Left(strIDS, Len(strIDS)-2)' Escreve os IDS para você poder conferir se veio correto e usar na tua consulta' tipo select * from tabela where id in (" & strIDs & ")Response.Write strIDs

espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explore tentei o codigo que você enviou, quando seleciona só um checkbox dá certo, o problema é quando seleciona mais d eum, da o erro abaixo:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (vírgula) na expressão de consulta 'Código = 2, 3'. /floresdora/cartao.asp, line 20

Dead tentei o seu tbm e da o seguinte erro:

Erro de compilação do Microsoft VBScript error '800a03f3' '=' esperado /floresdora/cartao.asp, line 97 for x to Lbound(vCB) to Ubound)vCB0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explore tentei o codigo que você enviou, quando seleciona só um checkbox dá certo, o problema é quando seleciona mais d eum, da o erro abaixo:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (vírgula) na expressão de consulta 'Código = 2, 3'. /floresdora/cartao.asp, line 20

Dead tentei o seu tbm e da o seguinte erro:

Erro de compilação do Microsoft VBScript error '800a03f3' '=' esperado /floresdora/cartao.asp, line 97 for x to Lbound(vCB) to Ubound)vCB0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explore tentei o codigo que você enviou, quando seleciona só um checkbox dá certo, o problema é quando seleciona mais d eum, da o erro abaixo:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (vírgula) na expressão de consulta 'Código = 2, 3'. /floresdora/cartao.asp, line 20

Dead tentei o seu tbm e da o seguinte erro:

Erro de compilação do Microsoft VBScript error '800a03f3' '=' esperado /floresdora/cartao.asp, line 97 for x to Lbound(vCB) to Ubound)vCB0

Oie, é pq coloquei uma coisa errada hehe, isso aqui
'Trocar isso for x to Lbound(vCB) to Ubound)vCB0'por isso abaixofor x to Lbound(vCB) to Ubound(vCB)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade:

for x to Lbound(vCB) to Ubound)vCB0
É:
for x = Lbound(vCB) to Ubound(vCB)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade:

for x to Lbound(vCB) to Ubound)vCB0

É:
for x = Lbound(vCB) to Ubound(vCB)
ups, malz, isso q da escrever codigo direto no post hehe.vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Dead e Salgado, tentei o código da seguinte maneira

<% dim x, vCB, strIDS'Recupera num vetor os checkboxes postadosvCB = Split(Request(presente) & ",", ",")' Laço pelo vetor de IDsfor x = Lbound(vCB) to Ubound(vCB) 'Se o id é válido... if Len(Trim(vCB(x))) > 0 then 'Concatena os IDS strIDS = strIDS & vCB(x) & ", " end ifnext' Retira a virgula que ficara no final da stringstrIDS = Left(strIDS, Len(strIDS)-2)' Escreve os IDS para você poder conferir se veio correto e usar na tua consulta' tipo select * FROM Add_Brasil where id in (" & strIDs & ")Response.Write strIDS%>

Não rolou , aparece a seguinte mensagem

Erro de tempo de execução do Microsoft VBScript error '800a0005' Chamada de procedimento ou argumento inválido: 'Left' /floresdora/cartao.asp, line 104

Nesta linha 104 tem o seguinte: strIDS = Left(strIDS, Len(strIDS)-2)O que eu fiz de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Dead e Salgado, tentei o código da seguinte maneira

<% dim x, vCB, strIDS'Recupera num vetor os checkboxes postadosvCB = Split(Request(presente) & ",", ",")' Laço pelo vetor de IDsfor x = Lbound(vCB) to Ubound(vCB) 'Se o id é válido... if Len(Trim(vCB(x))) > 0 then 'Concatena os IDS strIDS = strIDS & vCB(x) & ", " end ifnext' Retira a virgula que ficara no final da stringstrIDS = Left(strIDS, Len(strIDS)-2)' Escreve os IDS para você poder conferir se veio correto e usar na tua consulta' tipo select * FROM Add_Brasil where id in (" & strIDs & ")Response.Write strIDS%>

Não rolou , aparece a seguinte mensagem

Erro de tempo de execução do Microsoft VBScript error '800a0005' Chamada de procedimento ou argumento inválido: 'Left' /floresdora/cartao.asp, line 104

Nesta linha 104 tem o seguinte: strIDS = Left(strIDS, Len(strIDS)-2)O que eu fiz de errado?
Aline, n estou vendo nenhum erro no código, o que deve estar acontecendo é que o strIDS está vindo vazio, troca a linha
strIDS = Left(strIDS, Len(strIDS)-2)
por
if Len(Trim(strIDS)) > 0 then  strIDS = Left(strIDS, Len(strIDS)-2)end if
Abraço, qq coisa fala ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Dead, sumi que precisei fazer uma pequena viagem, o que acabou me enrolando, agora me prazo esta no limite.Fiz a alteração que indicou, e agora não dá mensagem de erro, mas não esta escrevendo nada, apesar de ter o Response.Write.O que será que ocorre?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta ai teu codigo pra gente ver o pro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.