Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 12
Nome: Anderson Silva
Sexo: Masculino

Soma de inputs com o mesmo nome com JavaScript

29-07-2011 16:43

Pessoal, boa tarde!
Esse é meu primeiro post nesse fórum, estive olhando e vi que tem bastante gente boa aqui! Peço quer por favor, me ajudem!
Estou começando na programação a pouco tempo e estou com algumas dúvidas...

A minha dúvida é a seguinte:

Estou fazendo um sistema e preciso multiplicar o VALOR DO PRODUTO pela QUANTIDADE, com Javascript. De forma simples eu consegui, o código ficou assim.

<script type="text/javascript"> function multiplicar() { var qtde = document.form1.quantProd.value; var valor = document.form1.valorUni.value; total = qtde * valor; //faz a multiplicação document.form1.valorTotal.value = total; } </script> <form name="form1"> Quant. Produto...<input type="text" name="quantProd" id="quantProd" /><br/><br/> Valor Unitário.....<input type="text" name="valorUni" id="valorUni" onblur="multiplicar()" /><br/><br/> Valor Total.........<input type="text" name="valorTotal" id="valorTotal"/> </form>

****** Mas eu estou trazendo esses produtos do banco de dados e tenho que inputar os valores. Dessa forma:

$sql = "SELECT * FROM produto"; $rs = mysql_query($sql, $con); if (mysql_num_rows($rs) > 0){ echo "<table>"; echo "<tr>"; echo "<th style=width: 340px;>PRODUTOS</th>"; echo "<th style=width: 86px;>Emb Padrão</th>"; echo "<th style=width: 87px;>Quant Solic</th>"; echo "<th style=width: 87px;>Valor</th>"; echo "</tr>"; while ($row = mysql_fetch_object($rs)) { echo "<tr>"; echo "<td>". $row->nome ."</td>"; echo "<td>". $row->emba ."</td>"; echo "<td><input type=\"text\" name=\"[b]quantSolic[/b]\" class=\"number\" /> </td>"; echo "<td><input type=\"text\" name=\"[b]valor[/b]\" class=\"number\" onblur=\"multiplicar()\" /> </td>"; echo "</tr>"; } echo "</table>"; }


*******Porém, quando eu trago do banco, os INPUTS vem TODOS com o mesmo nome, aí eu não consigo fazer essa soma.

Como eu faria no Javascript, para somar O VALOR TOTAL DE CADA PRODUTO(QUANT * VALOR), DEPOIS SOMAR TODOS ESSES VALORES E TER UM ÚNICO VALOR TOTAL DE TODOS OS PRODUTOS?

Seria a situação desse FORM aqui em baixo, tenho campos input com mesmo nome, como ficaria o meu Javascript para isso funcionar??? Resolvendo esse Form sem alterar o nome dos inputs, consigo resolver o restante!!!!

<form name="form1"> Quant. Produto...<input type="text" name="quantProd" id="quantProd" /> <br/><br/> Valor Unitário.....<input type="text" name="valorUni" id="valorUni" onblur="multiplicar()" /> <br/><br/> Quant. Produto...<input type="text" name="quantProd" id="quantProd" /> <br/><br/> Valor Unitário.....<input type="text" name="valorUni" id="valorUni" onblur="multiplicar()" /> <br/><br/> Valor Total.........<input type="text" name="valorTotal" id="valorTotal"/> </form>

Valeu pessoal!
Muito obrigado!

Abraço
0
Editado pela última vez por web em 29-07-2011 16:45, em um total de 1 vez.
Razão: Título melhorado, use a tag Code para scripts
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17511
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Soma de inputs com o mesmo nome com JavaScript

29-07-2011 17:04

Eu tenho um script aqui que é bem parecido, só que para adaptar ao banco de dados com valores indefinidos é complicado.

<script> function soma(var1, var2, tot) { campo1 = document.getElementById(var1).value; campo1 = campo1.replace(/[,]/g, ""); campo2 = document.getElementById(var2).value; campo2 = campo2.replace(/[,]/g, ""); if(campo1!="" && campo2!="") { total = parseFloat(campo1)*parseFloat(campo2); document.getElementById(tot).value=parseFloat(total); } } </script> <form name="form"> valor: <input type="text" name="" id="valor1" value="10.75" onkeyup="numMoeda(event,this);" readonly="readonly"> quantidade: <input type="text" name="" id="valor2" value="" onkeyup="soma('valor1','valor2','total1');numMoeda(event,total1);"> total: <input type="text" name="" id="total1" value=""> <br> valor: <input type="text" name="" id="valor3" value="20.40" onkeyup="numMoeda(event,this);" readonly="readonly"> quantidade: <input type="text" name="" id="valor4" value="" onkeyup="soma('valor3','valor4','total2');numMoeda(event,total2);"> total: <input type="text" name="" id="total2" value=""> </form>

0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17511
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Soma de inputs com o mesmo nome com JavaScript

29-07-2011 17:23

Tem também um plugin jQuery chamado Smart Cart, veja a demonstração

http://techlaboratory.net/labs/SmartCart2/index.php

Para baixar acesse

http://techlaboratory.net/products.php?product=scat
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 12
Nome: Anderson Silva
Sexo: Masculino

Soma de inputs com o mesmo nome com JavaScript

01-08-2011 13:48

Cara, muito obrigado por esses códigos, me deram uma luz!
Quando conseguir terminar vou postar o código aqui, obrigado!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17511
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Soma de inputs com o mesmo nome com JavaScript

01-08-2011 13:51

Boa. ;)
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 12
Nome: Anderson Silva
Sexo: Masculino

Soma de inputs com o mesmo nome com JavaScript

03-08-2011 15:01

Pessoal, consegui!!!!!!!!!!!

E como prometido, está aí o código!

<script type="text/javascript"> function contar(){ var total = 0; //Inicia a variável total i = 1; //Inicia a variável contadora var totallinhas = document.form1.contador.value; // Inicia a variável totallinhas pegando a quantidades de linhas recebidas do MYSQL var flag = 1; //Inicia a variável flag while(i <= totallinhas){ var quantSolic = document.getElementById("quantSolic"+i).value; //Recebe o valor contido no primeiro input da quantidade, e faz o loop var valor = document.getElementById("valor"+i).value; //Recebe o valor contido no primeiro input do valor, e faz o loop if((quantSolic == 0 || quantSolic == "") && (valor != "" || valor != 0)){ window.alert("Atribua um número válido para quantidade!"); flag = 0; break; } else{ flag = 1; document.getElementById("quantSolic"+i).style.border = 'solid 1px #ccc'; } if((quantSolic != "" || quantSolic != 0) && (valor == 0 || valor == "")){ window.alert("Atribua um número válido para o valor!"); flag = 0; break; } if((quantSolic != "" && quantSolic != 0) && (valor != "" && valor != 0)){ //Se a quantidade for diferente de vazio e de 0 e a mesma total = total + (quantSolic) * (valor); //condição para o valor, então faz a conta } i++; //variável contadora } document.form1.valortotal.value = total; //imprimi no input valortotal do form1 a variável total(a soma total da quantidade * preço de todos //os produtos carregados de uma tabela mysql) } </script>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17511
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Soma de inputs com o mesmo nome com JavaScript

03-08-2011 16:21

Se possível posta o HTML do formulário que usou para esse script.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 12
Nome: Anderson Silva
Sexo: Masculino

Soma de inputs com o mesmo nome com JavaScript

03-08-2011 16:41

Cara, o que estava dentro do FORM era esse código PHP. Com um botão submit e outro calcular.
O botão calcular era da seguinte forma que chamada a função.

<input type="button" name="calcular" id="calcular" value="Calcular Pedido" onClick="contar()" /> <?php include_once 'fontes/config2.php'; $sql = "SELECT * FROM produto"; $rs = mysql_query($sql, $con); $i = 0; if (mysql_num_rows($rs) > 0){ echo "<table>"; echo "<tr>"; echo "<th style=width: 340px;>PRODUTOS</th>"; echo "<th style=width: 86px;>Emb Padrão</th>"; echo "<th style=width: 87px;>Quant Solic</th>"; echo "<th style=width: 87px;>Valor</th>"; echo "</tr>"; while ($row = mysql_fetch_object($rs)) { $i++; echo "<tr>"; echo "<td>". $row->nome ."</td>"; echo "<td>". $row->emba ."</td>"; echo "<td><input type='text' name='quantSolic$i' id='quantSolic$i' class='number' /> </td>"; echo "<td><input type='text' name='valor$i' id='valor$i' class='number' onblur='multiplicar()' /> </td>"; } $totallinhas = $i; echo "</table>"; echo"<input type='hidden' name='contador' value='$totallinhas'/>"; } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17511
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Soma de inputs com o mesmo nome com JavaScript

03-08-2011 17:08

Era só para deixar referência de uso, ;)
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado