Jump to content

DLSeken

Members
  • Content count

    119
  • Joined

  • Last visited

  • Days Won

    1

DLSeken last won the day on December 2 2014

DLSeken had the most liked content!

Community Reputation

4 Comum

About DLSeken

  1. Boa tarde galera, Estou desenvolvendo um sistema e reparei que ao tentar inserir um funcionário que possua acento o mesmo é adicionado de maneira equivocada. O sistema tem um formulário onde se adiciona os dados do funcionário a um "departamento" após isso, ele tem um botão adicionar para se adicionar mais funcionários ao departamento. Após adicionar todos os funcionários ao departamento tenho que envia-los para o banco de dados OBS: Testei enviando apenas 1 funcionário pelo formulário e está indo com acento certo. O problema é quando adiciono os dados do form em uma lista (pré formulário) ae qnd vou passar os dados parece que ele perde a configuração e grava errado Exemplo: Pará está vindo como PaÃj Código onde tem o formulário. <!DOCTYPE html> <?php include_once("conecta.php"); include_once("funcoes.php"); ?> <html lang="pt-br"> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" /> <title>Substituição Temporário</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/corpo.css"> <link rel="stylesheet" href="css/bootstrap.css"> <script src="js/jquery-2.1.3.min.js" type="text/javascript"></script> <script src="js/form.js" type="text/javascript"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> </head> <body> <script type="text/javascript"> $(document).ready(function(){ // Evento change no campo tipo $("select[name=unidade]").change(function(){ // Exibimos no campo marca antes de concluirmos $("select[name=lotacao]").html('<option value="">Carregando...</option>'); // Exibimos no campo marca antes de selecionamos a marca, serve tamb?m em caso // do usuario ja ter selecionado o tipo e resolveu trocar, com isso limpamos a // sele??o antiga caso tenha feito. // Passando tipo por parametro para a pagina ajax-marca.php $.post("ajax-lotacao.php", {tipo:$(this).val()}, // Carregamos o resultado acima para o campo marca function(valor){ $("select[name=lotacao]").html(valor); } ) }) }) </script> <script type="text/javascript"> function ResetFormValues() { $("#nome, #especialidade, #prazo, #nr_matricula").each(function () { $(this).val(""); }); $("textarea").val(""); $("#cargo, #lotacao").each(function () { $(this).val(""); }); } </script> <div id="interface"> <header id="cabecalho"> <hgroup> <h1>Substituição</h1> </hgroup> <ul class="nav navbar-nav"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu <span class="glyphicon glyphicon-user pull-right"></span></a> <ul class="dropdown-menu"> <li><a href="principal.php">Principal <span class="glyphicon glyphicon-home pull-right"></span></a></li> <li class="divider"></li> <li><a href="buscarSubstituidoI.php">Cadastrar Substituído<span class="glyphicon glyphicon-plus pull-right"></span></a></li> <li><a href="buscarSubstituido.php">Alterar Substituído<span class="glyphicon glyphicon-pencil pull-right"></span></a></li> <li class="divider"></li> <li><a href="buscarSubstituto.php">Alocar Substituto<span class="glyphicon glyphicon-pencil pull-right"></span></a></li> <li><a href="buscarSubstitutoA.php">Alterar Substituto<span class="glyphicon glyphicon-pencil pull-right"></span></a></li> <li class="divider"></li> <li><a href="buscarMemorando.php">Listar Memorando<span class="glyphicon glyphicon-list-alt pull-right"></span></a></li> <li class="divider"></li> <li><a href="finalizar.php">Desconectar<span class="glyphicon glyphicon glyphicon-log-out pull-right"></span></a></li> <li class="divider"></li> </ul> </li> </ul> </header> <section id="corpo"> <div class="container"> <?php $qntmemo = validaPermissaoSubstituido($conexao, $nr_memorando); $result_total = $qntmemo->fetch(PDO::FETCH_ASSOC); $resultado_total = $result_total[count]; if($resultado_total == 0){ ?> <form role="form" method='post' action='#'> <div class="row"> <div class="panel panel-default"> <div class="panel-body form-horizontal payment-form"> <div class="form-group"> <label for="memorando" class="col-sm-3 control-label">Nº Memorando</label> <div class="col-sm-9"> <input type="text" class="form-control" id="memorando" name="memorando"> </div> </div> <div class="form-group"> <label for="dateM" class="col-sm-3 control-label">Envio do Memorando</label> <div class="col-sm-3"> <input type="text" class="form-control" id="dateM" name="dateM"> </div> <label for="unidade" class="col-sm-3 control-label">Unidade</label> <div class="col-sm-3"> <select class="form-control" id="unidade" name="unidade"> <option value="">Selecione</option> <?php $resultado = comboBoxSecretaria($conexao); while ($linha = $resultado->fetch(PDO::FETCH_ASSOC)){ echo '<option value="'.$linha['cd_secretaria'].'"'.$selected.'>'.$linha['sg_secretaria'].'</option>'; }?> </select> </div> </div> </div> </div> <!-- panel preview --> <div class="col-sm-14"> <div class="panel panel-default"> <div class="panel-body form-horizontal payment-form"> <fieldset id="Form"> <div class="form-group"> <label for="nome" class="col-sm-3 control-label">Nome</label> <div class="col-sm-9"> <input type="text" class="form-control" id="nome" name="nome"> </div> </div> <div class="form-group"> <label for="cargo" class="col-sm-3 control-label">Cargo</label> <div class="col-sm-9"> <select class="form-control" id="cargo" name="cargo"> <option value="">Selecione</option> <?php $resultadoD = comboBoxCargo($conexao); while ($linhaD = $resultadoD->fetch(PDO::FETCH_ASSOC)){ echo '<option value="'.$linhaD['cd_cargo'].'"'.$selected.'>'.$linhaD['ds_cargo'].'</option>'; }?> </select> </div> </div> <div class="form-group"> <label for="especialidade" class="col-sm-3 control-label">Especialidade</label> <div class="col-sm-9"> <input type="text" class="form-control" id="especialidade" name="especialidade"> </div> </div> <div class="form-group"> <label for="lotacao" class="col-sm-3 control-label">Lotação</label> <div class="col-sm-9"> <select class="form-control" id="lotacao" name="lotacao"> <option value="0" selected="selected">Aguardando Unidade...</option> </select> </div> </div> <div class="form-group"> <label for="prazo" class="col-sm-3 control-label">Prazo solicitado em meses</label> <div class="col-sm-3"> <input type="text" class="form-control frm_number_only" id="prazo" name="prazo"> </div> <label for="nr_matricula" class="col-sm-3 control-label">Nº Matrícula</label> <div class="col-sm-3"> <input type="text" class="form-control frm_number_only" id="nr_matricula" name="nr_matricula"> </div> </div> <div class="form-group"> <label for="justificativa" class="col-sm-3 control-label">Justificativa</label> <div class="col-sm-9"> <textarea rows="4" cols="50" class="form-control" id="justificativa" name="justificativa"></textarea> </div> </div> <div id="aviso" style="display: none;"> <p style="color:red; font-size:14px">* Preencha todos os campos!</p> </div> </fieldset> <div class="form-group"> <div class="col-sm-12 text-right"> <input class="btn btn-default pre" type="button" id="limparCampos" onclick="ResetFormValues()" value="Limpar" /> <button type="button" class="btn btn-default preview-add-button"> <span class="glyphicon glyphicon-plus"></span> Adicionar </button> </div> </div> </div> </div> </div> <!-- / panel preview --> <div class="col-sm-14"> <h4>Resumo:</h4> <div class="row"> <div class="col-xs-12"> <div class="table-responsive"> <table class="table preview-table"> <thead> <tr> <th>Nº Memorando</th> <th>Nome</th> <th>Cargo</th> <th>Especialidade</th> <th>Prazo</th> </tr> </thead> <tbody></tbody> <!-- preview content goes here--> </table> </div> </div> </div> <div class="row"> <div class="col-xs-12"> <input type="hidden" class="form-control" id="jsonString" name="jsonString"> <hr style="border:1px dashed #dddddd;"> <!--<input type="submit" onclick="parametros();" class="btn btn-primary btn-block">--> <button onclick="parametros();" class="btn btn-primary btn-block">Enviar</button> </div> </div> </div> </div> </form> <?php }else{?> <form role="form" method='post' action='#'> <div class="row"> <div class="panel panel-default"> <div class="panel-body form-horizontal payment-form"> <div class="form-group"> <label for="mensagem" class="col-sm-9 control-label">Prazo encerrado para adicionar novos servidores ao memorando!</label> </div> </div> </div> </div> </form> <?}?> </div> </section> <footer id="rodape"> </footer> </div> </body> </html> Código que adiciona os elementos numa lista de preview antes de enviar os elementos para o banco: var list = []; $(function(){ $('.preview-add-button').click(function(){ var form_data = {}; form_data["memorando"] = $('.payment-form input[name="memorando"]').val(); form_data["dateM"] = $('.payment-form input[name="dateM"]').val(); form_data["unidade"] = $('.payment-form #unidade').val(); form_data["nome"] = $('.payment-form input[name="nome"]').val(); form_data["nr_matricula"] = $('.payment-form input[name="nr_matricula"]').val(); form_data["cargo"] = $('.payment-form #cargo').val(); form_data["especialidade"] = $('.payment-form input[name="especialidade"]').val(); form_data["lotacao"] = $('.payment-form #lotacao').val(); form_data["prazo"] =$('.payment-form input[name="prazo"]').val(); form_data["justificativa"] = $('.payment-form textarea[name="justificativa"]').val(); list.push(form_data); form_data["remove-row"] = '<span class="glyphicon glyphicon-remove"></span>'; var row = $('<tr></tr>'); if($('.payment-form input[name="nome"]').val() !== ""){ $.each(form_data, function( type, value ) { if((type == "justificativa")||(type == "unidade")||(type == "dateM")||(type == "lotacao")||(type == "nr_matricula")){ $("<td class='input-"+type+"' style='display:none'></td>").html(value).appendTo(row); }else{ $('<td class="input-'+type+'"></td>').html(value).appendTo(row); } }); }else{ $(function(){ $("#aviso").fadeIn(700, function(){ window.setTimeout(function(){ $('#aviso').fadeOut(); }, 5000); }); }); } $('.preview-table > tbody:last').append(row); calc_total(); }); }); Código onde possui o evento do botão de "enviar os dados do formulário" function parametros(){ for (i = 0; i < list.length; i++) { $.ajax({ data: { memorando: list[i]["memorando"], dateM: list[i]["dateM"], unidade: list[i]["unidade"], nome: list[i]["nome"], nr_matricula: list[i]["nr_matricula"], cargo: list[i]["cargo"], especialidade: list[i]["especialidade"], lotacao: list[i]["lotacao"], prazo: list[i]["prazo"], justificativa: list[i]["justificativa"] }, type: "POST", url: 'confirmarSubstituido.php', timeout: 20000, contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1", dataType: 'json'}); } } Página onde a função Paramentros chama. <!DOCTYPE html> <?php include_once("conecta.php"); include_once("funcoes.php"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" /> <link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="css/bootstrap.css"> <link rel="stylesheet" href="css/validacao.css"> <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"> <script src="js/jquery-2.1.3.min.js" type="text/javascript"></script> <script src="js/form.js" type="text/javascript"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <title>Sistema de Seleção</title> </head> <body> <?php session_start(); $memorando = $_POST["memorando"]; $dateM = gravar_data($_POST["dateM"]); $unidade = $_POST["unidade"]; $nome = $_POST["nome"]; $nr_matricula = $_POST["nr_matricula"]; $cargo = $_POST["cargo"]; $especialidade = $_POST["especialidade"]; $lotacao = $_POST["lotacao"]; $prazo = $_POST["prazo"]; $justificativa = $_POST["justificativa"]; $aux = count($prazo); $jsonString = $_POST["jsonString"]; ?> <table class="table table-striped table-bordered"> <tr> <?php if(!adicionaSubstituido($conexao, $memorando, $dateM, $unidade, $nome, $nr_matricula, $cargo, $especialidade, $lotacao, $prazo, $justificativa)){ ?> <td><p class="text-danger"> Erro ao cadastrar!</p></td> <?} ?> </tr> </table> </body> </html>
  2. DLSeken

    Combos dependentes

    Consegui fiz por outro método e funcionou.
  3. DLSeken

    Combos dependentes

    Pessoal, tenho 2 combo box que dependem um do outro. Tentei fazer funcionar mas parece que estou errando em algum lugar. Será que vocês podem me ajudar ? Segue os códigos abaixo: Função para Popular o Combo Box principal: function secretaria($conexao){ $query = $conexao->prepare("SELECT cd_secretaria, nm_secretaria, sg_secretaria FROM tb_secretaria WHERE cd_secretaria = '13' or cd_secretaria = '16'"); $query->execute(); return $query; } HTML onde fica o Combo Box - Página criacao.php: <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <select name="secretaria" id="secretaria" onchange="buscar_departamento()" class="form-control input-sm" required="required"> <option value="">Secretaria</option> <?php $resultado = secretaria($conexao); while ($linha = $resultado->fetch(PDO::FETCH_ASSOC)){ echo '<option value="'.$linha['cd_secretaria'].'"'.$selected.'> '.$linha['sg_secretaria'].'</option>'; }?> </select> </div> </div> </div> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group" id="load_departamento"> <select name="departamento" id="departamento" class="form-control input-sm" required="required"> <option value="">Seleciona a Secretaria</option> </select> </div> </div> </div> Função onchange="buscar_departamento() function buscar_departamento(){ var secretaria = $('#secretaria').val() if(secretaria){ var url = 'criacao.php?secretaria='+secretaria; $.get(url, function(dataReturn) { $('#load_departamento').html(dataReturn); }); } }
  4. DLSeken

    Input (type='time')

    Bom dia, Estou desenvolvendo um sistema em PHP na empresa onde trabalho e estou com dúvida em relação ao type = 'time'. Esse módulo que estou desenvolvendo é de horas extras para o funcionários. Portanto, o input poderá ter na parte de horas mais do que 2 dígitos. Eu usando o type = 'time' ele só permite no máximo 23:59. Ex: um funcionário pode ter 40:30 de horas extras. Usando o input type = 'time' eu não pensei em nenhuma solução; A solução que pensei foi deixar o input como text e tentar fazer a validação por JS. O que vocês me aconselham?
  5. DLSeken

    Formulário protegido contra CSRF

    Bom dia, Desenvolvi um sistema web para um setor de onde trabalho e todos nossos sistemas devem passar por uma avaliação no quesito de vulnerabilidades. O meu sistema voltou acusando que está com problema de CSRF (Cross-Site Request Forgery) em 2 inputs. Alguém sabe como proteger os formulários contra CSRF ?
  6. DLSeken

    Função Extract + sum - PostgreSQL

    Obrigado Motta e Fernando ambas as soluções me ajudaram. Muito obrigado.
  7. Bom dia, Estou com um problema em um sistema que estou desenvolvendo. Nesse sistema tenho diversas datas de afastamento de serviço onde preciso que seja feita a soma dos afastamentos por ano: EX: Afastamento Data Inicio Data Termino (Data Termino - Data Inicio) 1 01/05/2011 20/05/2011 20 2 10/08/2011 15/08/2011 5 3 01/04/2015 04/04/2015 4 4 05/05/2015 07/05/2015 3 Porém não estou conseguindo montar o SQL para somar as datas pelo ano. Alguém poderia me ajudar? Eu montei esse SQL abaixo mas não está funcionando. Montei de uma maneira errada porque não tenho ideia de como fazer. SELECT dt_inicio,dt_termino, sum((dt_termino - dt_inicio)+1), Extract (Year from dt_inicio) ano from sch_gp.tb_certidao_dias WHERE date_trunc('Year', dt_inicio) = '2014-01-01' group by dt_inicio,dt_termino
  8. DLSeken

    como montar Query

    Bom dia, Tenho uma tabela que possui vários registros de um funcionário (caso ele tenha trabalhado mais de uma vez pela empresa) e tenho um campo chamado "dt_demissao" esse campo pode estar vazio (Null) ou preenchido. Como faço para trazer o registro tendo como prioridade o campo null, caso não seja null a data mais recente. Alguém poderia me ajudar?
  9. DLSeken

    Relatório em Excel e Calc

    Bom dia, Estou com um problema. Na empresa que eu trabalho estão trocando os programas que utilizam Excel para Calc. Com o sistema que desenvolvi emite um relatório somente em Excel. Tentei fazer algumas modificações para abrir no Calc mas ele não preenche com o conteúdo do banco. Alguém saberia me dizer onde estou errando ou aconselha outro classe ou método para resolver meu problema? Essa é a parte do código que defino qual extensão o arquivo deve ser gerado: header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT"); header ("Cache-Control: no-cache, must-revalidate"); header ("Pragma: no-cache"); //header ("Content-type: application/vnd.ms-excel"); //header ("Content-Disposition: attachment; filename=$nr_edital.xls" ); header ("Content-type: application/vnd.oasis.opendocument.spreadsheet"); header ("Content-Disposition: attachment; filename=$nr_edital.ods" ); header ("Content-Description: PHP Generated Data" );
  10. DLSeken

    Input

    Boa tarde, gostaria de saber como vocês trabalham com o Input type='date' já que no Firefox ele não funciona. Vocês colocam apenas input type = 'text' e fazem mascara ?
  11. DLSeken

    Função lastInsertID()

    Obrigado deu certo.
  12. DLSeken

    Função lastInsertID()

    Bom dia, estou com uma dúvida no meu código. Eu estou tentando exibir uma mensagem de erro caso o sistema não consiga cadastrar as informações no banco. O problema é que o cadastro foi realizado mas o sistema mostra que não foi. Acho que estou usando a função lastInsertId() de alguma maneira errada. Alguém poderia me dar alguma luz ? Segue o código abaixo: try { $cd_classe = $_POST['classe']; $sg_processo = $_POST['sg_processo']; $dt_inicio = $_POST['dt_inicio']; $dt_termino = $_POST['dt_termino']; $nr_edital = $_POST['nr_edital']; $quant_linhas = count($cd_classe); for ($i=0; $i<$quant_linhas; $i++) { adicionaEdital($conexao, $cd_classe[$i], $sg_processo[$i], $dt_inicio[$i], $dt_termino[$i], $nr_edital[$i]); }?> <table class="table table-striped table-bordered"> <tr> <?php if($conexao->lastInsertId() > 0){?> <td><p class="text-success"><?echo("O edital foi cadastrado com sucesso!");?> </p></td> <?}else{?> <td><p class="text-danger"><?throw new Exception("O edital não teve seu cadastro realizado com sucesso.",1);?></p></td> <?}?> </tr> </table> <?} catch(PDOException $e){?> <table class="table table-striped table-bordered"> <tr> <td><p class="text-danger"><?echo 'Error: '. $e->getMessage();?></p></td> </tr> </table> <?} catch(Exception $e){?> <table class="table table-striped table-bordered"> <tr> <td><p class="text-danger"><?echo 'Error: '. $e->getMessage();?></p></td> </tr> </table> <?} include ("rodape.php");?>
  13. DLSeken

    Paginação usando PDO

    Tente mudar o seu SQL no primeiro código que você postou. Adicione o OFFSET no sql. Essa foi a solução para um problema parecido que eu tive. SELECT * FROM imoveis WHERE imovelStatus = :imovelStatus ORDER BY imovelTermino ASC LIMIT '.$inicio.' OFFSET'.$maximo
  14. DLSeken

    Classe para Gerar PDF

    Boa tarde, gostaria de saber se existe alguma classe melhor e mais fácil que a fpdf para geração de arquivos em pdf? Alguém poderia me indicar caso tenha ?
  15. DLSeken

    uniqid

    Ok obrigado beraldo
×

Important Information

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