Jump to content
acneto.frc

document is not defined

Recommended Posts

Tenho uma aplicação WEB NodeJs+Javascript. Na minha view (FILTROS PARA RELATÓRIO) além dos inputs tenho um radio button onde seleciono o tipo de do relatório que será gerado. No meu Controller tenho acesso aos campos inputs (type=text) normalmente mas não tenho acesso aos inputs (type=radio). Abaixo vou colocar parte do código.

 

<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- As 3 meta tags acima *devem* vir em primeiro lugar dentro do `head`; qualquer outro conteúdo deve vir *após* essas tags -->
        <title><%= title %></title>

        <link rel="stylesheet" type="text/css" media="screen" href="/estilos/estilos.css" />
    </head>

    <body>

        <header>
                <nav class="menuBase">
                    <ul>
                        <li><a href="/">Início</a></li>
                        <li><a href="/estagio/relatorios">Voltar</a></li>
                        <li><a href=""> </a></li>
                    </ul>
                </nav>
        </header>
                
        <main class=frmRelFiltros>
            <ul class="nav nav-tabs">
                <li class="active" id="home-tab"><a data-toggle="tab" href="#pagina1">Relatório de Contratos</a></li>
            </ul>
        
            <div class="tab-content">
                    <div id="pagina1" class="tab-pane fade in active">
                        <form action='/contratos/relatorios/RelContratosPrint' method="post" id="relAlunos">

    <!--
    primeira linha 
    -->    
                            <br>
                            <div class="filtros" style="margin:15px">
                                <div class="row">
                                    <div class="form-group col-md-6 col-md-offset-0"> 
                                        <label>Código Contrato.:</label>                            
                                        <input type="text" name="cod_ini" value="0"/>  A  <input type="text" name="cod_fim" value="999999" />
                                        <br> <br>
        
                                        <label>Ativo/Inativo...:</label>                            
                                        <input type="text" name="atv_ini" value="A"/>  A  <input type="text" name="atv_fim" value="Z" />
                                        <br> <br>
            
                                        <label>Data Cadastro...:</label>                            
                                        <input type="text" name="cad_ini" value="01/01/2000"/>  A  <input type="text" name="cad_fim" value="31/12/2090" />
                                        <br> <br>
        
                                        <label>Data Vigência...:</label>                            
                                        <input type="text" name="vig_ini" value="01/01/2000"/>  A  <input type="text" name="vig_fim" value="31/12/2090" />
                                        <br> <br>
        
                                        <label>Sit. Contrato...:</label>                            
                                        <input type="text" name="sit_ini" value="0"/>  A  <input type="text" name="sit_fim" value="99" />
                                        <br> <br>
        
                                        <label>Código do Curso.:</label>                            
                                        <input type="text" name="cur_ini" value="1"/>  A  <input type="text" name="cur_fim" value="99" />
                                        <br> <br>
                                        
                                    </div>

                                    <div class="form-group col-md-6 col-md-offset-0"> 
                                        <label>Código da Empresa.:</label>                            
                                        <input type="text" name="emp_ini" value="1"/>  A  <input type="text" name="emp_fim" value="9999" />
                                        <br> <br>
        
                                        <label>Centro Integração.:</label>                            
                                        <input type="text" name="cie_ini" value="1"/>  A  <input type="text" name="cie_fim" value="999"/>
                                        <br> <br>
                                        
                                        <label>Valor da Bolsa....:</label>                            
                                        <input type="text" name="vlr_ini" value="1"/>  A  <input type="text" name="vlr_fim" value="99999999"/>
                                        <br> <br> <br>

                                        <div id="opcoesRelContratos" >
                                            <p>Selecione o Tipo do Relatório:</p>

                                            <input type="radio" id="tipoRel" name="padrao" value="padrao" checked=true>
                                            <label for="padrao">Padrao-Conferência</label><br>

                                            <input type="radio" id="tipoRel" name="faixa" value="faixa">
                                            <label for="faixa">Faixa Salarial-Estatístico</label><br>

                                            <input type="radio" id="tipoRel" name="alunos_empresas" value="alunos_empresas">
                                            <label for="alunos_empresas">Identificação de Alunos por Empresa</label> <br>

                                            <input type="radio" id="tipoRel" name="entregas" value="entregas">
                                            <label for="entregas">Pastas de Estágios Entregues</label><br>

                                            <input type="radio" id="tipoRel" name="contratos_vencer" value="contratos_vencer">
                                            <label for="contratos_vencer">Contratos a Vencer 30 dias</label> <br>

                                        </div>
                                        
                                    </div>
                                </div>
                            </div>    
                            <br>                               
    <!--
    botões de acão
    --> 

                            <div class="btn-acao" style="margin-bottom: 0px;">
                                <div class="row">
                                    <div class="col-md-2 col-md-offset-1">
                                        <button id="btn-executarRel" type="submit" class="btn btn-primary btn-block" >Executar </button>

                                    </div>

                                    <div class="col-md-2 col-md-offset-1">
                                        <button type="button" id="btn-cancelarRel" class="btn btn-primary btn-block">Voltar</button> 
                                    </div>     
                                </div>
                            </div>
                            <br>
                        </form>
                    </div>  <!-- tab pagina 1 -->
                </div>              
        </main>

    <!-- JavaScript (Opcional) -->
    <!-- jQuery primeiro, depois Popper.js, depois Bootstrap JS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

    <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
       
    <script type="text/javascript" src="/js/funcoesCliente.js"></script>
    <script type="text/javascript" src="/js/script.js"></script>    
    
  </body>
  
</html>

 

 

Agora o código do routes e controllers. No controllers preciso acessar um elemento radio da view

*** botão para submeter a view
<button id="btn-executarRel" type="submit" class="btn btn-primary btn-block" >Executar </button>

*** rota a ser executada ao sonfirmar a execução do relatório
<form action='/contratos/relatorios/RelContratosPrint' method="post" id="relAlunos">

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
arquivo: contratosRoutes.js

var contratosControllers = require('../controllers/contratosControllers.js');
 
module.exports = (app) => {

    app.get('/contratos/relatorios/relContratos', contratosControllers.contratosRel);

    app.post('/contratos/relatorios/RelContratosPrint', contratosControllers.printContratosRel);

}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
arquivo: contratosControllers.js

const alunosController = require('../models/contratosModels.js');

const cnf_ambiente = require('../../config/config.js');
 
const moment = require('moment');
 
module.exports = {
  
    printContratosRel, 
}  

function printContratosRel(req, res){

    console.log("Data Inicial Normal: "+req.body.cad_ini)
    console.log("Data Final Normal..: "+req.body.cad_fim)
    console.log("++++++++++++++++++++ DATA NO FORMATO DE ENTRADA APÓS O POST ++########################")    
  
// ++++++++++++ BAIXO O ERRO document is not defined
  
    var radios = document.getElementsById("tipoRel");
    for (var i = 0; i < radios.length; i++) {
        if (radios[i].checked) {
            console.log("Escolhido: " + radios[i].value);
        }
    }

    cod_i = req.body.cod_ini;
    cod_f = req.body.cod_fim;
    atv_i = req.body.atv_ini;
    atv_f = req.body.atv_fim;

    cad_i = req.body.cad_ini;
    cad_f = req.body.cad_fim;
    
    vig_i = req.body.vig_ini;
    vig_f = req.body.vig_fim;
    sit_i = req.body.sit_ini;
    sit_f = req.body.sit_fim;
    cur_i = req.body.cur_ini;
    cur_f = req.body.cur_fim;
    emp_i = req.body.emp_ini;
    emp_f = req.body.emp_fim;
    cie_i = req.body.cie_ini;
    cie_f = req.body.cie_fim;
    vlr_i = req.body.vlr_ini;
    vlr_f = req.body.vlr_fim;
   
    console.log("Relatório >>>>>>>>>>>>>>>>>>>>>>>> "+cad_i + ' - '+ cad_f);    
    alunosController.buscarPrintContratosRel(
        cod_i, cod_f,
        vlr_i, vlr_f, 
        sit_i, sit_f, 
        cur_i, cur_f, 
        emp_i, emp_f,        
        cad_i, cad_f,        
        vig_i, vig_f,        
        atv_i, atv_f, 
        cie_i, cie_f,        
          function(err, result){
        if(result){
            console.log("Encontrei registro de contratos.... Vou tratar das datas..");
            for(var i = 0; i < result.length; i++ ){
                result[i].cea_dtcadastro = moment(result[i].cea_dtcadastro).format("DD/MM/YYYY");
                result[i].cea_dtalteracao = moment(result[i].cea_dtalteracao).format("DD/MM/YYYY");                
                result[i].cea_vigenciainicial = moment(result[i].cea_vigenciainicial).format("DD/MM/YYYY");
                result[i].cea_vigenciafinal = moment(result[i].cea_vigenciafinal).format("DD/MM/YYYY");

            }
        }

        if (err) {
            throw err;
        } else{
            res.render('estagios/relatorios/frm_relContratosPrint.ejs', 
                {title: 'Contratos', 
                nomeUsuario: global.nomeUsuario,
                codigoUsuario: global.codigoUsuario,
                nomeFormulario: req.originalUrl, 
                obj_contratos: result, 
            });
        }
    });
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Vinixops
      Bom dia!
       
      Não estou conseguindo receber os dados de um campo textarea e um select. Estou tentando via jquery. Todos os campos input são recebido corretamente.
      Testei de várias formas e não consegui.
       
      Vou colocar os trechos do código. Fico grato caso alguém possa ajudar.
       
       
      Função que uso para enviar os dados para página que fazer o tratamento.
      // --> Envia dados Formulario Orçamento - Start <--
          jQuery(function($){                
              $('#OrcIndex').submit(function(){
                  event.preventDefault();                    
                  $.post('CadastraOrcIndex.asp', $('#OrcIndex input'), function(retorno){
                      if(retorno){                        
                          //alert(retorno);
                          $("#PrintaOrcIndex").html(retorno);
                      }else{
                      }
                  }, 'html');
                  return false;
              });
          });
      // --> Envia dados Formulario de Orçamento - End <--
       
      Formulário o que preciso enviar os dados para tratamento.
       
                               <form method="post" id="OrcIndex" name="OrcIndex">
                                      <input type="hidden" id="latitude" name="Latitude">
                                      <input type="hidden" id="longitude" name="Longitude">
                                  <div class="row g-3">
                                      <div class="col-12 col-sm-6">
                                          <label>Seu nome</label>
                                          <input name="NomeOrc" type="text" class="form-control border-0" style="height: 55px;">
                                      </div>
                                      <div class="col-12 col-sm-6">
                                          <label>Seu e-mail</label>
                                          <input name="EmailOrc" type="email" class="form-control border-0" style="height: 55px;">
                                      </div>
                                      <div class="col-12 col-sm-6">
                                          <label>Seu celular</label>
                                          <input name="CelularOrc" type="text" class="form-control border-0" style="height: 55px;">
                                      </div>
                                      <div class="col-12 col-sm-6">
                                          <label>Escolha o setor</label>
                                          <select name="SetorOrc" id="SetorOrc" class="form-select border-0" style="height: 55px;">
                                              <option value="Selecione" selected>Selecione</option>
                                              <option value="Energia Solar">Energia Solar</option>
                                              <option value="Aquecimento Solar">Aquecimento Solar</option>
                                              <option value="Câmeras e Monitoramento">Câmeras e Monitoramento</option>
                                              <option value="Automação Residencial">Automação Residencial</option>
                                              <option value="Automação Comercial">Automação Comercial</option>
                                              <option value="Redes e Informática">Redes e Informática</option>
                                          </select>
                                      </div>
                                      <div class="col-12">
                                          <label>Detalhe sua necessidade </label>
                                          <textarea name="DetalheOrc" id="DetalheOrc" class="form-control border-0"></textarea>
                                      </div>
                                      <div class="col-12">
                                          <button class="btn btn-primary rounded-pill py-3 px-5" type="submit">Solicitar Orçamento</button>
                                      </div>
                                  </div>
                              </form>
                          <span id="PrintaOrcIndex">&nbsp;</span>
    • By vmenezes
      ola galera . tenho uma aplicação com asp  e utilizo javascript para bater foto do cliente . consigo apos a foto batida salvar no pc com o ID do cliente,
      porem gostaria que assim que a foto fosse batida salvasse na raiz do proprio site.
      tem como fazer isso ?
      obg
    • By marco_fcp
      Estou tentando criar este código para quando escolher uma option no select, ele pegar nesse valor, e somar com quantos checksbox o utilizador quiser. Aí, no fim, no campo do valortotal conforme a option que escolher, irá subtrair um desconto do valor total. Penso ter feito os scripts, mas não estou a conseguir o resultado final com o desconto, dinâmico no mesmo campo.
      <!-- Pedido de Orçamento --> <div class="container-fluid mb-5"> <div class="row"> <div class="col-lg-2"></div> <div class="col-lg-8 mb-5"> <div class="caixa-orcamento pb-5"> <form action="" method="POST" onchange="atualizarPreco()" name="formulario"> <h3 class="text-center pt-5 pb-4 labels">Pedido de Orçamento:</h3> <table class="m-auto"> <tr> <td class="fw-bold labels">Tipo de página web:</td> <td> <!-- Três tipos de pãgina Fictícia com os valores de 400, 500 e 600 respetivamente --> <select name="tipopagina" id="tipopagina" required> <option value="0"></option> <option value="400" id="estatica">Estática</option> <option value="500" id="dinamica" >Dinâmica</option> <option value="600" id="loja" >Loja</option> </select> </td> </tr> <tr> <!-- Descontos de Prazo - de 1 Mes- 5%, 2 Meses-10%, 3 Meses- 15$, 4 Meses- 20%, em diante sempre 20% --> <td class="fw-bold labels">Prazo em meses:</td> <td><input type="number" id="prazo"></td> </tr> </table> <h5 class="text-center pt-5 pb-4 labels">Marque os separadores desejados</h5> <!-- Cada check selecionado soma 400 ao valor total --> <div class="checkbox labels text-center mb-5"> <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Quem Somos <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Onde estamos <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Galeria de fotografias <br> <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">eCommerce <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Gestão Interna <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Notícias <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Redes Sociais </div> <h5 class="text-center labels">Orçamento estimado:</h5> <p class="text-center labels">(É um valor meramente indicativo, pode sofrer alterações)</p> <div class="resultado-orcamento text-center"> <!-- Valor total do orçamento com os botões de resetar e submeter o orçamento --> <input type="text" id="valor-orcamento" name="valor-orcamento" value=""> <br> <button type="reset" class="btn btn-primary mt-4" id="reset" name="reset">Apagar Orçamento</button> <button type="submit" class="btn btn-primary mt-4" id="submeter" name="submeter">Submeter Orçamento</button> </div> </form> </div> </div> <div class="col-lg-2"></div> </div> </div> function atualizarPreco() { var preco = 0; // Tipo de página Selecionada com preços Diferentes if (document.getElementById('tipopagina').value == '400') { preco = 400; } if (document.getElementById('tipopagina').value == '500') { preco = 500; } if (document.getElementById('tipopagina').value == '600') { preco = 600; } // Desconto de 5% por cada mês de prazo (sobre valor total do orçamento) (máximo 20% de desconto que equivale a 4 meses máximo. A partir daí é sempre 20%) var prazo = document.getElementById('prazo').value; if (prazo == 0) { preco = preco + 0; } else if (prazo == 1) { preco = preco - (preco * 0.05); } else if (prazo == 2) { preco = preco - (preco * 0.10); } else if (prazo == 3) { preco = preco - (preco * 0.15); } else { preco = preco - (preco * 0.20); } document.getElementById('valor-orcamento').value = preco; // Código que soma 400€ ao total por cada checkbox selecionado var soma1 = 0; function somar(check) { if ( check.checked ){ soma1 += 1*check.value; } else { soma1 -= 1*check.value; } document.getElementById("valor-orcamento").value = soma1; } }  
    • By luiz monteiro
      Olá, tudo bem?
       
      Estou tentando colocar um evento dropdown em um template.js mas sem sucesso.
       
      O script é o seguinte
       
      const template = `
      <nav id="sidebar">

          <ul class="list-unstyled menu">
              <li>
                  <a href="#">
                      <span class="glyphicon glyphicon-home" aria-hidden="true"></span>
                      Home
                  </a>
              </li>
              <li>
                  <a href="#">
                      <span class="glyphicon glyphicon-signal" aria-hidden="true"></span>
                      Analytics
                  </a>
              </li>
              <li>
              <a href="#">
                  <span class="glyphicon glyphicon-tasks" aria-hidden="true"></span>
                  Ações
              </a>
              </li>
              <li>
                  <a href="#">
                      <span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
                      Controles
                  </a>
              </li>
              <li>
                  <a href="#">
                      <span class="glyphicon glyphicon-user" aria-hidden="true"></span>
                      Configurações
                  </a>
              </li>
          </ul>

          </nav>
      `
      export default {
        name: "Sidebar", 
        template,
        delimiters: ["#{", "}#"]
      }
       
       
       
       
      ============Preciso colocar um dropdown na opção Ações, algo assim
       
                      <li
                          v-for="item in items">
                          <a :href="item.url"
                             v-if="!item.children">
                              
                          </a>
                          <span
                              v-else
                              v-on:mouseover="mouseover"
                              v-on:mouseleave="mouseleave">
                              {{ item.name }}
                              
                              <ul class=" dropdown"
                                 :class="{ isOpen }">
                                  <li
                                      v-for="child in item.children">
                                      <a :href="child.url">
                                          {{ child.name }}
                                      </a>
                                  </li>
                              </ul>
                          </span>
                      </li>
       
      var nav = new Vue({
          el: '#nav',
          data: {
              isOpen: false,
              items: [
                  {
                      url: '#acoes',
                      name: 'Ações',
                      children: [
                          {
                              url: '#link1',
                              name: 'Opção 1'
                          },
                          {
                              url: '#link2',
                              name: 'Opção 2'
                          },
                          {
                              url: '#link3',
                              name: 'Opção 3'
                          },
                      ]
                  }
              ]
          },
          methods: {
              mouseover: function () {
                  this.isOpen = true;
              },
              mouseleave: function () {
                  this.isOpen = false;
              }
          }
      });
       
       
       
      Quando coloco a programação no sidebar.js, não é exibido nada na tela nem mesmo retorna erro.
       
       
      =============No index os imports estão assim
       
          <script type="importmap">
            {
              "imports": {
                "vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js"
              }
            }
          </script>
          <script type="module">
            import { createApp } from "vue";
            import Sidebar from "/components/sidebar.js";
            import Welcome from "/components/welcome.js";
            const app = createApp({
                delimiters: ["#{", "}#"],
                components: {
                  Welcome,
                  Sidebar
                },
                data() {
                  return {}
                },
                methods: {
                
                }
              }).mount("#wrapper");
          </script>
        </body>
       
      Agradeço desde já.
       
       
       
    • By nathanmoreira
      Após diversos cálculos provindos de um código, recebo um número inteiro ao qual não sei o tamanho ao certo (pode variar de 1 pra frente). Quero passar esse número para string e formatar ele de maneira a colocar um ,00 no final e, a cada 3 números antes da virgula, um ponto. Ou seja, deixar o número num formato como: 45.114.477,00
       
      Como fazer? 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.