Created
August 14, 2019 01:46
-
-
Save neoandrevictor/5740ab9a34a0dee3254c3efc4206df8e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="pt-br"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>Aparecida Nutrição</title> | |
| <link rel="icon" href="favicon.ico" type="image/x-icon"> | |
| <link rel="stylesheet" type="text/css" href="css/reset.css"> | |
| <link rel="stylesheet" type="text/css" href="css/index.css"> | |
| </head> | |
| <body> | |
| <header> | |
| <div class="container"> | |
| <h2 class="titulo">Aparecida Nutrição</h2> | |
| </div> | |
| </header> | |
| <main> | |
| <section class="container"> | |
| <h2>Meus pacientes</h2> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>Nome</th> | |
| <th>Peso(kg)</th> | |
| <th>Altura(m)</th> | |
| <th>Gordura Corporal(%)</th> | |
| <th>IMC</th> | |
| </tr> | |
| </thead> | |
| <tbody id="tabela-pacientes"> | |
| <tr class="paciente" id="primeiro-paciente"> | |
| <td class="info-nome">Paulo</td> | |
| <td class="info-peso">100</td> | |
| <td class="info-altura">2.00</td> | |
| <td class="info-gordura">10</td> | |
| <td class="info-imc">0</td> | |
| </tr> | |
| <tr class="paciente"> | |
| <td class="info-nome">João</td> | |
| <td class="info-peso">80</td> | |
| <td class="info-altura">1.72</td> | |
| <td class="info-gordura">40</td> | |
| <td class="info-imc">0</td> | |
| </tr> | |
| <tr class="paciente"> | |
| <td class="info-nome">Erica</td> | |
| <td class="info-peso">100</td> | |
| <td class="info-altura">1.64</td> | |
| <td class="info-gordura">14</td> | |
| <td class="info-imc">0</td> | |
| </tr> | |
| <tr class="paciente"> | |
| <td class="info-nome">Douglas</td> | |
| <td class="info-peso">85</td> | |
| <td class="info-altura">1.73</td> | |
| <td class="info-gordura">24</td> | |
| <td class="info-imc">0</td> | |
| </tr> | |
| <tr class="paciente"> | |
| <td class="info-nome">Tatiana</td> | |
| <td class="info-peso">46</td> | |
| <td class="info-altura">1.50</td> | |
| <td class="info-gordura">19</td> | |
| <td class="info-imc">0</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </section> | |
| </main> | |
| <section class="container"> | |
| <h2 id="titulo-form">Adicionar novo paciente</h2> | |
| <form id="form-adicionar"> | |
| <div class="grupo"> | |
| <label for="nome">Nome:</label> | |
| <input id="nome" name="nome" type="text" placeholder="digite o nome do seu paciente" class="campo"> | |
| </div> | |
| <div class="grupo"> | |
| <label for="peso">Peso:</label> | |
| <input id="peso" name="peso" type="text" placeholder="digite o peso do seu paciente" | |
| class="campo campo-medio"> | |
| </div> | |
| <div class="grupo"> | |
| <label for="altura">Altura:</label> | |
| <input id="altura" name="altura" type="text" placeholder="digite a altura do seu paciente" | |
| class="campo campo-medio"> | |
| </div> | |
| <div class="grupo"> | |
| <label for="gordura">% de Gordura:</label> | |
| <input id="gordura" type="text" placeholder="digite a porcentagem de gordura do seu paciente" | |
| class="campo campo-medio"> | |
| </div> | |
| <button id="adicionar-paciente" class="botao bto-principal">Adicionar</button> | |
| </form> | |
| </section> | |
| <script srcFalso="calcula-imc.js"> | |
| var titulo = document.querySelector(".titulo"); | |
| titulo.textContent = "Aparecida Nutricionista" | |
| var pacientes = document.querySelectorAll(".paciente"); | |
| for (var i = 0; i < pacientes.length; i++) { | |
| var paciente = pacientes[i]; | |
| var tdPeso = paciente.querySelector(".info-peso"); | |
| var peso = tdPeso.textContent; | |
| var tdAltura = paciente.querySelector(".info-altura"); | |
| var altura = tdAltura.textContent; | |
| var tdImc = paciente.querySelector(".info-imc"); | |
| var pesoEhValido = validaPeso(peso); // true ou false | |
| var alturaEhValida = validaAltura(altura); | |
| if (!pesoEhValido) { | |
| console.log("peso inválido!"); | |
| pesoEhValido = false; | |
| tdImc.textContent = "Peso inválido!"; | |
| paciente.classList.add("paciente-invalido"); | |
| } | |
| if (!alturaEhValida) { | |
| console.log("Altura inválida!"); | |
| alturaEhValida = false; | |
| tdImc.textContent = "Altura inválida!"; | |
| paciente.classList.add("paciente-invalido"); | |
| } | |
| if (alturaEhValida && pesoEhValido) { | |
| var imc = peso / (altura * altura); | |
| tdImc.textContent = imc.toFixed(2); | |
| } | |
| } | |
| function validaPeso() { | |
| if (peso >= 0 && peso < 1000) { | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| } | |
| function validaAltura(altura) { | |
| if (altura >= 0 && altura <= 3.0) { | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| } | |
| function calculaImc(peso, altura) { | |
| var imc = 0; | |
| imc = peso / (altura * altura); | |
| return imc.toFixed(2); | |
| } | |
| </script> | |
| <script srcFalso="form.js"> | |
| var botaoAdicionar = document.querySelector("#adicionar-paciente"); | |
| botaoAdicionar.addEventListener("click", function (event) { | |
| event.preventDefault(); | |
| var form = document.querySelector("#form-adicionar"); | |
| var paciente = obtemPacienteDoFormulario(form); | |
| var pacienteTr = montaTr(paciente); | |
| if (!validaPaciente(paciente)) { | |
| console.log("paciente Inválido") | |
| return; | |
| } | |
| // adiciona o paciente na tabela | |
| var tabela = document.querySelector("#tabela-pacientes"); | |
| tabela.appendChild(pacienteTr); | |
| form.reset(); | |
| }); | |
| function obtemPacienteDoFormulario(form) { | |
| var paciente = { | |
| nome: form.nome.value, | |
| peso: form.peso.value, | |
| altura: form.altura.value, | |
| gordura: form.gordura.value, | |
| imc: calculaImc(form.peso.value, form.altura.value) | |
| } | |
| 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.altura, "info-altura")); | |
| pacienteTr.appendChild(montaTd(paciente.gordura, "info-gorduraTd")); | |
| 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; | |
| } | |
| function validaPaciente(paciente) { | |
| if (validaPeso(paciente.peso)) { | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| } | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment