Ir para conteúdo

POWERED BY:

Arquivado

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

Victor Tales

Valores da CHECKBOX para uma ARRAY

Recommended Posts

Galera é o seguinte eu tenho um formulário onde o cliente marca todos os itens que ele quer comprar, e esses itens são cadastrados num banco de dados, até ai tudo bem.

 

Mas para fazer a soma de todos os itens imagem por exemplo que eu tenha uns 2.000 itens cadastrados, como eu faria para passar os valores da checkbox para uma Array e dividir e somar os valores?

 

Eu fiz um exemplo só que é na mão:

 

ASP [/tr][tr]<%

 

Dim valor01

Dim valor02

Dim valor03

Dim valor04

Dim valor05

Dim calcular

Dim total

 

'Recebe valores do formulário

valor01 = CInt(Request.Form("a"))

valor02 = CInt(Request.Form("b"))

valor03 = CInt(Request.Form("c"))

valor04 = CInt(Request.Form("d"))

valor05 = CInt(Request.Form("e"))

 

'Calcula valores do formulário

calcular = (valor01+valor02+valor03+valor04+valor05)

 

'Verifica se é vazio

if calcular = 0 then

total = "Você ainda não escolheu nenhum dos itens da loja."

else

total = calcular

end if

%>

[/tr]

 

Alguém tem uma luz ai? PORFAVOR! É super urgente!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

poe todos os campos no formulario com o mesmo nome mas o valor diferente...

 

<input name="produto" type=checkbox value="4444">

<input name="produto" type=checkbox value="3333">

 

ai qdo você postar o formulário você ja vai receber isso assim...

 

produto = request.form("produto") '---vai vir assim: 4444,3333

ai você cria um array e separando os valores por vírgula

yyy = split(produto,",")for each valor in yyy    '---ai você tem os valores separados agora em cada vez q passar pelo for vai ter um valor... ai você faz o q quiser com ele    response.write valor   'um exemplo / sql = "select * from produto WHERE idproduto="& valornext

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera consegui separa os valores da check, mas o problema é o seguinte ele não está calculando:

 

ASP [/tr][tr]<%

Dim valor

Dim calculo

 

'Recebe valores da checkbox

valor = Request.Form("valores")

valor = Split(valor,",")

 

'Printa os valores

Response.Write(valor(0))

Response.Write(valor(1))

Response.Write(valor(2))

Response.Write(valor(3))

Response.Write(valor(4))

 

'Printa o calculo

Response.Write(calculo)

 

'Realiza o calculo

For i = LBound(valor) to UBound(valor)

calculo = Trim(valor+ valor(i))

Next

 

%>

[/tr]

 

Ele só PRINTA os valores, mas não realiza o CALCULO.

 

ALGUMA LUZ!!!??? Por favor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP [/tr][tr]<%

 

Dim valor

Dim calculo

 

valor = Request.Form("valores")

valor = Split(valor,",")

 

Response.Write(valor(0))

Response.Write(valor(1))

Response.Write(valor(2))

Response.Write(valor(3))

Response.Write(valor(4))

Response.Write(calculo)

Response.Write("<br>")

Response.Write("<br>")

Response.Write(CInt(valor(0) + valor(1)))

 

For i = LBound(valor) to UBound(valor)

calculo = valor + valor(i)

Next

 

%>

[/tr]

 

Com o teste de calculo eu descobri que ele não passou para INT os valores, quando eu tento usar o CInt() ele simplesmente da esse erro:

 

256 500 300 900 100

 

 

Microsoft VBScript runtime error '800a000d'

 

Type mismatch: 'CInt'

 

/teste/teste.asp, line 24

 

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou fazer assim?pode trocar as virgulas pelo sinal de (+) sem fazer split ...valor = Request.Form("valores")muda=replace(valor,",","+")Veja se funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que os valores não vem em formato INTEIRO e sim STRING veja:

 

256+ 500+ 300+ 900+ 100+
Eu preciso que essas drogas venham em formato INTEIRO!

 

E isso acontece mesmo que eu declare que as variaveis são INT

 

ASP [/tr][tr]<%

 

int muda

int valor

 

valor = Request.Form("valores")

muda=replace(valor,",","+")

 

Response.Write(muda)

 

%>

[/tr]

 

Alguém tem uma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aê Mano,

 

Não sei se eu estou errado, mas se ligue ai. Tu tá dando um Print na variável calculo antes dela ser incrementada pelo For lá mais abaixo no código. Sendo assim, o valor que vai ser mostrado da variável calculo é igual a vazio.

 

olha só o código que você postou:

 

Dim valor

Dim calculo

 

valor = Request.Form("valores")

valor = Split(valor,",")

 

Response.Write(valor(0))

Response.Write(valor(1))

Response.Write(valor(2))

Response.Write(valor(3))

Response.Write(valor(4))

Response.Write(calculo)

Response.Write("<br>")

Response.Write("<br>")

Response.Write(CInt(valor(0) + valor(1)))

 

For i = LBound(valor) to UBound(valor)

calculo = valor + valor(i)Next

 

 

Minha sugestão de código:

 

Dim valor

Dim calculo

 

valor = Request.Form("valores")

valor = Split(valor,",")

 

Response.Write(valor(0))

Response.Write(valor(1))

Response.Write(valor(2))

Response.Write(valor(3))

Response.Write(valor(4))

Response.Write("<br>")

Response.Write("<br>")

Response.Write("Soma dos Valores:")

 

For i = LBound(valor) to UBound(valor)

calculo = CInt(valor) + CInt(valor(i))

Next

 

Response.Write(calculo)

 

 

Valews Mano! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq você naum usa for each?para fazer a soma para cada campo no form...ai você economiza mtas linhas de programação...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele esqueceu de postar, mas havia uma falha no Form dele, havia um <Input Type="Text"> com o mesmo nome dos CheckBoxes, o que trazia um valor "" (vazio) para o Array e consequentemente causava um erro com o CInt.

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.