Ir para conteúdo

POWERED BY:

Arquivado

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

claitonmr

[Resolvido] JS dificuldade com soma valores com loop FOR

Recommended Posts

Olá galera do iMasters.

Ja aprendi muitas coisas aqui nos tópicos mas esse é meu primeiro post e estou precisando de uma ajuda.

 

Estou desenvolvendo um sistema de soma dinamica que soma os valores dos inputs gerados por um loop em php. Se existir 2 registros ele soma normal mas se existir só 1registro ele nao executa.

 

 

 

function valores_os(){

 

total_peca=0;

 

v_conta= document.frm_orcamento_mo.input_valor_peca_pop.length;

 

for(x=0;x < v_conta;x++){

 

total_peca=eval(total_peca+'+'+document.frm_orcamento_mo.input_valor_peca_pop[x].value.replace(",",".")+'*'+document.frm_orcamento_mo.input_quantidade_peca_pop[x].value);

 

total_peca_unidade=eval(document.frm_orcamento_mo.input_valor_peca_pop[x].value.replace(",",".")+'*'+document.frm_orcamento_mo.input_quantidade_peca_pop[x].value);

 

document.frm_orcamento_mo.retorno_valor_peca_pop[x].value= total_peca_unidade.toFixed(2)

}

 

document.frm_orcamento_mo.retorno_total_pecas.value= total_peca.toFixed(2);

 

}

 

 

/////////////////////////

 

for($i = 0;$i<mysql_num_rows($pecasql);$i++) {

 

<input name="input_quantidade_peca_pop[]" id="input_quantidade_peca_pop" onKeyUp="valores_os()" value="<?=$quant_peca_pop?>">

 

<input name="input_valor_peca_pop[]" id="input_valor_peca_pop" onKeyUp="valores_os()" value="<? if($valor_peca_peca==""){echo'0,00';}else{echo $valor_peca_peca;}?>

 

<input name="retorno_valor_peca_pop[]" id="retorno_valor_peca_pop" onFocus="valores_os()">

 

}

 

<input name="retorno_total_pecas" type="text" id="retorno_total_pecas" size="8" readonly="true" />

 

 

 

 

Acho que o problema esta no no loop do JS pois o loop do php conta o registro "0" e a condicional do for JS "for(x=0;x < v_conta;x++)" nao roda pois x já é = 0; Porem "0" tambem é um registro...rs

 

Estou a 2 semanas buscando respostas mas nao encontro nada.

 

Desde ja obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae galera consegui resolver assim meu JS

 

coloquei um input para contar os registro

 

<input name="num_reg" id="num_reg" type="hidden"/>

 

e quando só tem um registro ele retorna o valor 1 nao podendo fazer a array .

 

entao coloquei um if para quando retornar 1.

 

 

total_peca=0;

v_conta= document.getElementsByName('num_reg').length;;

 

if(v_conta==1){var total_peca = eval(document.frm_orcamento_mo.input_valor_peca_pop.value.replace(",",".")+'*'+document.frm_orcamento_mo.input_quantidade_peca_pop.value);

document.frm_orcamento_mo.retorno_valor_peca_pop.value= total_peca.toFixed(2);}//se existir só uma peca

else{// se existir + de uma peca

for(i=0;i < v_conta;i++){

 

 

total_peca=eval(total_peca+'+'+document.frm_orcamento_mo.input_valor_peca_pop.value.replace(",",".")+'*'+document.frm_orcamento_mo.input_quantidade_peca_pop.value);

 

 

total_peca_unidade=eval(document.frm_orcamento_mo.input_valor_peca_pop.value.replace(",",".")+'*'+document.frm_orcamento_mo.input_quantidade_peca_pop.value);

document.frm_orcamento_mo.retorno_valor_peca_pop.value= total_peca_unidade.toFixed(2)

}

}

document.frm_orcamento_mo.retorno_total_pecas.value= total_peca.toFixed(2);

 

 

 

 

Nao sei se a explicação é bem essa mas esta funcionando!

 

Obrigado a todos =)

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.