Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Calcular MÉDIA (multiplas linhas x campos)


clicsis

Pergunta

Bom dia, pessoal,

Gostaria se possível do auxílio dos amigos no sentido de:

================================

Tenho um formulário que é gerado automaticamente, e poderá conter:

- Várias linhas identificadas por ID, onde para cada linha, vários campos identificados por "campo(IDLinha)_n",

- Ao final de cada linha é inserido o campo média

Exemplo (para 5 linha x 4 campos):

Linha1 > campo1_1, campo1_2, campo1_3, campo1_4, media1

Linha2 > campo2_1, campo2_2, campo2_3, campo2_4, media2

Linha3 > campo3_1, campo3_2, campo3_3, campo3_4, media3

Linha4 > campo4_1, campo4_2, campo4_3, campo4_4, media4

Linha5 > campo5_1, campo5_2, campo5_3, campo5_4, media5

O Script:

<script type="text/javascript">
function CalcularMedia(QualForm,QualID,QuantCampos) {
var trocaV = /,/g;
var Tsoma=0;
for (var i=1;i<QuantCampos;i++) {
    Tsoma += document.getElementById('campo'+QualID+'_'+i).value.replace(trocaV,".");
}
    eval('document.'+QualForm+'.media_'+QualID+'.value='+(Tsoma)/QuantCampos);
}
</script>

Editado por fercosmig
Adicionar tag's
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

O script simplesmente não executa:

Tentei colocar antes da linha:

================

Tsoma += document.getElementById('campo'+QualID+'_'+i).value.replace(trocaV,".");

================

um "alert(i);" e o mesmo é executado uma única vez, mostrando o numero 1, já quando eu comento as linhas:

================

// Tsoma += document.getElementById('campo'+QualID+'_'+i).value.replace(trocaV,".");

// eval('document.'+QualForm+'.media_'+QualID+'.value='+(Tsoma)/QuantCampos);

================

e deixo o "alert(i);",

Ao menos é constatado o funcionamento do loop e da identificação dos parâmetros, possivelmente o problema está na linha:

================

Tsoma += document.getElementById('campo'+QualID+'_'+i).value.replace(trocaV,".");

================

Desde já, novamente agradeço.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara JavScritp é a linguagem do inferno! :lol:

As vezes não retorna erro as vezes simplesmente não executa com esperado.

você terá de debugar o script assim:

<script type="text/javascript">
function CalcularMedia(QualForm,QualID,QuantCampos) {

alert('aki 1 ');

var trocaV = /,/g;

alert('aki 2 ');

var Tsoma=0;
for (var i=1;i<QuantCampos;i++) {

    Tsoma += document.getElementById('campo'+QualID+'_'+i).value.replace(trocaV,".");

    alert('aki 3 ');
}

alert('aki 4 ');

    eval('document.'+QualForm+'.media_'+QualID+'.value='+(Tsoma)/QuantCampos);
}
</script>

Com isto você consegue ter uma idéia de onde este ocorrendo o erro.

Outra coisa seria utilziar o parseInt e parseFloat para converte os tipos na hora da soma.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado galera, consegui usando o seguinte:

<script type="text/javascript">
function CalcularMedia(QualForm,QualID,QuantCampos) {
var trocaV = /,/g;
var Tsoma=0;
var TsomaX=0;
for (var i=1;i<QuantCampos;i++) {
    TsomaX += eval('document.'+QualForm+'.nota'+QualID+'_'+i+'.value.replace(trocaV,".")')*1;
}
    eval(QualForm+'.media_'+QualID+'.value="'+((TsomaX*1)/((QuantCampos-1)*1))+'"');
}
</script>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...