Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Fórmula não funciona por completo

Criei um programa que você coloca o nome e o valor do produto e ele tem que calcular o total de pontos que aquele produto da para a pessoa, mas tem um problema.

Na tabela criada, ele consegue jogar o nome do produto e o valor, mas na parte de pontos acumulados ele não faz a conta, simplesmente joga a célula vazia, como conserto isso?

Segue meu html e meu JS:

<!DOCTYPE html>
<html lang="pt-br">
<meta charset="UTF-8">

<head>
<title> Conversor de Pontos BB </title>
    <link rel="icon" href="">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Crimson+Text:400,400italic,600">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/pontos.css">
</head>

<body>
    <main>
        <h1 id="titulo" class="titulo-principal">"Calcule abaixo os seus Pontos Barba"</h1>
        <br>
        <br>
        <h2>Adicione o nome e o produto na tabela abaixo e veja quantos pontos você ganhou:</h2>
        <br><br>
        <ul>
            <section class="container">
                <table>
                    <thead>
                        <tr>
                            <th>Nome do Produto</th>
                            <th>Valor</th>
              <th>Pontos Acumulados</th>
                        </tr>
                    </thead>
                    <tbody id="tabela-pacientes">
                        <tr class="paciente" id="primeiro-paciente">
                            <td class="info-nome">Tônico Barba Brasil</td>
                            <td class="info-peso">129</td>
              <td class="info-imc">92.14</td>
                        </tr>
                    </tbody>
                </table>
                <br>
                                <section class="container">
                        <table>
                            <thead>
                                <tr>
                                    <th>Total de Pontos Acumulados</th>
                                </tr>
                            </thead>
                            <tbody id="pontos-total">
                                <tr class="" id="totalizando">
                                    <td class="pontos-acumulados">0</td>
                                </tr>
                            </tbody>
                            <br><br>
                                        </table>
                                        <br><br>
                <h2>Preencha os dados abaixo para acessar a pontuação do produto:</h2>
                <br><br>
                    <h2 id="titulo-form">Verificar Pontuação do Produto: </h2>
                    <ul id="mensagens-erro"></ul>
                    <form id="form-adiciona">
                        <div class="grupo">
                            <label for="nome">Nome do Produto:</label>
                            <input id="nome" class="nome-produto" name="nome" type="text" placeholder="digite o nome do seu paciente" class="campo">
                        </div>
                        <div class="grupo">
                            <label for="peso">Valor do Produto:</label>
                            <textarea id="peso" class="valor-produto" name="peso" type="text" placeholder="digite o peso do seu paciente" class="campo campo-medio"></textarea>
                        </div>
                            <button id="adicionar-paciente" class="botao bto-principal">Adicionar</button>
                        <br>
                    </form>
                            <br>
                            <br>
                </section>
    </main>
                        <script src="js/jquery.js"></script>
            <script src="js/juntapontos.js"></script>
                        <script src="js/mostraPontos.js"></script>


</body>
</html>
var botaoAdicionar = document.querySelector("#adicionar-paciente");
botaoAdicionar.addEventListener("click", function(event) {
    event.preventDefault();

    var form = document.querySelector("#form-adiciona");

    var paciente = obtemPacienteDoFormulario(form);


    adicionaPacienteNaTabela(paciente);

});

var contaImc = 0.072;

function calculaImc (peso, contaImc){
      peso.value * contaImc;

}

function adicionaPacienteNaTabela(paciente){
    var pacienteTr = montaTr(paciente);
    var tabela = document.querySelector("#tabela-pacientes");
    tabela.appendChild(pacienteTr);
}

function obtemPacienteDoFormulario(form){

    var contaImc = 0.072;
    var paciente = {
        nome: form.nome.value,
        peso: form.peso.value,
        imc: calculaImc(form.peso.value, contaImc)

   }

   return paciente;
}


function montaTr(paciente){
    var pacienteTr = document.createElement("tr");
    pacienteTr.classList.add("paciente");

    pacienteTr.appendChild(montaTd(paciente.nome, "info-nome"));
    pacienteTr.appendChild(montaTd(paciente.peso, "info-peso"));
    pacienteTr.appendChild(montaTd(paciente.imc, "info-imc"));

    return pacienteTr;
}

function montaTd(dado,classe){
    var td = document.createElement("td");
    td.textContent = dado;
    td.classList.add(classe);
    return td;
}
var produto1 = $(".info-imc").text();
var pontosAcumulados = $(".pontos-acumulados");

pontosAcumulados.text(produto1);

var campo = $(".nome-produto");
campo.on("input", function(){
    var conteudo = campo.val();

});
4 respostas

Oi Fabio, tudo bem? Se entendi bem, o seu código dos pontos está solto, sem nenhuma relação com alguma lógica anterior, o que faz com que ele seja executado uma vez e pronto.

Você pode me explicar melhor como ele deveria funcionar?

Quero que ao clicar em adicionar no final da página, ele adicione um produto e já faça o cálculo dos pontos e jogue o resultado na coluna dos pontos acumulados e some com o total de pontos acumulados.

Atualmente ele apenas adiciona o nome do produto e o valor, não faz calculo nenhum.

Já fiz todos os cursos de iniciante de programação, um de javascript, to terminando um de jquery e mesmo assim to com muita dificuldade em criar programas.

Todo meu suporte está vindo do fórum, pois não conheço nenhum programador.

Para ajudar este é um print da tela: https://ibb.co/hYqXy0b

e a fórmula para calcular os pontos é multiplicar o valor do produto por 0.714.

Agradeço demais a ajuda, achei que ninguém ia responder rsrsrs

solução!

Só organizando o fórum, essa dúvida já foi solucionada em https://cursos.alura.com.br/forum/topico-como-somar-celulas-80178

Boa André!