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 acneto.frc
      Olá a todos! Estou modificando algumas funções que utilizam callback para utilizar asyn-await. Uso o padrão MVC. Meu problema é que chamo a função assíncrona na model ela é executada, não retorna erro mas não volta para o controller. Abaixo parte do código.
       
      arquivo routes.js
      const segurosRoutes = require('../controllers/segurosControllers.js');
      module.exports = (app) => {
      app.get('/estagio/movimentacoes/cadastroSeguros', segurosRoutes.segurosGetAll);
      }
      arquivo controllers.js
      const segurosController = require('../models/segurosModels.js');
      module.exports = { segurosGetAll, }
      function segurosGetAll(req, res){
      console.log("Entrando em Controllers Seguros: ")
      segurosController.getAll(function (err, result){
      if(err) {
      console.log("Erro: " + err) throw err;
      }else{ console.log("Resultado "+result)
      }
      })
      }
      arquivo models.js
      const client = require('../../config/conexao.js');
      const moment = require('moment');
      module.exports = {
      getAll,
      }
      async function getAll() {
      m_sql = 'select A.*, B.seg_razaosocial, B.seg_nomefantasia, C.alu_nome, D.usu_username from seguros A left join seguradora B on A.seg_codigo = B.seg_codigo left join usuarios D on A.usu_codigo = D.usu_codigo left join alunos C on A.alu_codigo = C.alu_codigo ';
      console.log("SQL em Seguros...."+m_sql)
      console.log("-----------------------")
      let retorno
      try{
      const retorno = await client.query(m_sql)
      console.log("Retornando da SQL: "+retorno)
      } catch(erro) {
      console.log(erro)
      retorno = erro
      }
      return retorno
      }
       
    • By fideles
      Mais uma vez venho aqui pedir ajuda a vocês.
       
      Tenho um formulario que criei aqui na empresa algo bem simples, somente para sair das planilhas de excel, que seria cadastro de funcionarios.
       
      Tem os campos, matricula, nome completo, unidade de trabalho, endereço e telefone de emergencia.
       
      A parte do formulario funciona, a gravação no BD tbm, listar as informações também, ai me perguntaram se era possível um auto preenchimento dos campos colocando somente a matricula do funcionario e respondi que eu não sei porque realmente não sei.
       
      A ajuda que eu preciso de vocês seria, é possível fazer isso ? Colocar a matricula e vir do banco e preencher os outros inputs? Se sim, é possível me derem um exemplo de como funciona e eu estudar o codigo e colocar nos outros inputs.
       
      Obrigado antecipadamente. 
       
    • By carlosmassam
      Bom noite a todos.

      Eu tenho o seguinte código
       
      <input type="radio" id="radio01" name="radio01" value="radio01"> <input type="radio" id="radio02" name="radio02" value="radio02"> <input type="radio" id="radio03" name="radio03" value="radio03"> <input type="radio" id="radio04" name="radio04" value="radio04"> <input type="radio" id="radio05" name="radio05" value="radio05"> Este código me apresenta 5 radiobuttons distintos, um ao lado do outro. Eu gostaria que, ao clicar em um deles, desse check no radiobutton que eu cliquei e também em todos os radiosbuttons anteriores, e os radionbutton posteriores fossem "deschecado".
      Por exemplo: ao clicar no radio04, ele deve fichar com check, e os radio03, radio02 e radio01 também devem ficar com check, como o radio05 vem depois do radio04, ele não deve ser checado, então permanecerá como está.
      Mas se eu então clicar no radio02, os radio03 e radio04 devem mudar para "deschecado" e os radio02 e radio01 devem permanecerem checados.
    • By fideles
      Fala pessoal, tudo tranquilo?
       
      Venho recorrer a vós pois já não consigo mais.... 
       
      Tenho um campo select com algumas opções de nome.
      <select class="seleciona_nome"> <option value="Joao">Joao</option> <option value="Julio">Julio</option> <option value="Pedro">Pedro</option> </select>  
      E um campo input do tipo "text"
      <input type="text" class="opcaoSelect" autocomplete="off" disabled="disabled">  
      Preciso que ao selecionar uma opção do "Select" seja auto preenchido no input. Tenho um codigo que funcionava e não sei mais porque não funciona, veja abaixo;
       
      <script> $(document).ready(function(){ $('.seleciona_nome').on('change', addOption); }); function addOption(){ $('.opcaoSelect').val(this.value); } </script>  
      Peço ajuda ai caso alguém consiga me ajudar a entender porque este não funciona mais.
       
      Obrigado.
       
    • By juliosertori
      Olá tudo bem?
       
      Estou criando um Repeater para adicionar produtos, o problema é que não consigo gerar um ID para cada linha, como um FOR ou WHILE no PHP, colocando $i = 0 e depois $i++
       
      Crio cada linha do repeater com bootstrap e utilizo assim:
       
      <tr data-repeater-item=""></tr>
       
      Mas como adicionar um id ou nome em sequência para cada repeater? Não encontrei nada na internet referente!
×

Important Information

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