Jump to content
Israel Lira

PHP obter return conforme valor informado no select

Recommended Posts

Caros, não estou sabendo implementar duas consultas quando o usuário clicar no (button). É uma proposta de apresentar a folha, mostrar os funcionários pelo SELECT .  Atualmente, consigo fazer com que ele veja se existe a referencia e se não existir apresenta um span de não encontrado. Preciso que faça de imediato uma sub-consulta trazendo os dados do select abaixo e se possivel implementar um exemplo calculando por exemplo um desconto de inss, por exemplo.: Salário: 1200,00  * 8% = 96,00.    

 

consultaBanco("SELECT funcionario.nome, funcionario.cargo, cargo.salario, folhamesano.mesano FROM funcionario, cargo, folhamesano WHERE funcionario.cargo = cargo.descricao AND folhamesano.mesano='{$codigoMes}'");

 

Segue primeiro o consulta folha:

 

 <!DOCTYPE html>
<html>
<head>
    <title>Consultar Folha</title>
    <link rel="stylesheet" type="text/css" href="style.css" >
    <!-- 
        Por comodidade, eu estou usando jquery direto do site deles, isso é mto comum e recomendado inclusive.
    -->
    <script src="https://code.jquery.com/jquery-3.4.0.min.js" type="text/javascript"></script>
    <script src="js/jquery.mask.min.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(document).ready(function(){
            $("#cpf").mask("000.000.000-00");
            $("#rg").mask("0.000.000");
            $("#horario").mask("00:00");
            $("#Mesano").mask("00/0000");
        });

        /**
         * Este aqui é o nosso método Javascript que irá fazer a requisição assincrona
         */
        function pesquisarMesano(codigoMes) {
            document.getElementById('mensagem_erro').innerText = '';

            /** Teste*/
            document.getElementById('mensagem_folha').innerText = '';
            /** Teste*/
            
            $.get(
                '/FOLHADEPAGAMENTO/RECIBOFOLHA/obtemFolhaPorCodigo.php',
                { codigoMes: codigoMes },
                
                function (response) {
                    
                    if (response.erro === 404) {
                        /**
                         * Eu nao estou usando o Jquery para obter os elementos, isso pq na versao do Javascript dos navegadores modernos, nao é mais necessario o jquery para isso
                         */
                        document.getElementById('formFolhamesano').reset();
                        document.getElementById('mensagem_erro').innerText = 'Folhamesano #'+codigoMes+' não encontrado!';

                        

                        return;
                    }

                    document.getElementById('mensagem_folha').innerText = 'Folhamesano #'+codigoMes+' teste!';
                    document.getElementById('mesano').value = response.mesano;
                    document.getElementById('nome').value = response.nome;
                    document.getElementById('cargo').value = response.cargo;
                    document.getElementById('salario').value = response.salario;
                    document.getElementById('descricao').value = response.descricao;
                    document.getElementById('horario').value = response.horario;
                },
                'json'
            );
        }

    </script>
    
    <style type="text/css">
  
        #corposistema{

            width: 1200px auto;
            height: 500px auto;      
        }
        #corpocadastro{
            border: solid gray 5px;
            width: 300px;
            height: 210px;
            border-radius: 5px;
            margin: 120px auto;
            background: white;
            padding: 50px;
        }
        #botao{
            color: #fff;
            margin-left: 370px;
            margin-top: -170px;
            background: #337ab7;
            border-radius: 85%;
            background: #337ab7;
            text-align: center;
            padding-top: 0 auto;
        }
        #botaocancelar{
            height: 70%;
            color: #fff;
            margin-left: 370px;
            margin-top: -5px;
            padding-top: 0 auto;
            background: #337ab7;
            text-align: center;
            border-radius: 85%;
        }
    </style>
</head>
<?php

include "banco_de_dados.php";


if(!empty($_GET['codigoMes'])){
    $codigoMes = (int) $_GET['codigoMes'];

    
    $row = consultaBanco("SELECT funcionario.nome, funcionario.cargo, cargo.salario, folhamesano.mesano from funcionario, cargo, folhamesano WHERE funcionario.cargo = cargo.descricao AND folhamesano.mesano='{$codigoMes}'");

    $codigoMes = $row['codigoMes'];
    $nome = $row['nome'];
    $rg = $row['rg'];
    $cpf = $row['cpf'];
    $descricao = $row['descricao'];
    $horario = $row['horario'];
    
} else $codigoMes = $nome = $rg = $cpf = $descricao = $horario = null;

    

?>

<body>
    <div id="corposistema">
        <div id="corpocadastro">
            <form id="formFolhamesano" action="/FOLHADEPAGAMENTO/RECIBOFOLHA/CADASTROFOLHA.php" method="POST">
                    <p>
                            <label>Competência </label>
                            <input name="codigoMes" id="Mesano" type="text" style="width: 20%" value="<?=$codigoMes?>" required/>

                            <button type="button" onclick="pesquisarMesano(this.form.elements['codigoMes'].value)">Pesquisar</button>
                            <span style="color: red" id="mensagem_erro"></span><br/>
                            <span style="color: red" id="mensagem_folha"></span><br/>
                    </p>
                    

            </form>

            <form action="/FOLHADEPAGAMENTO/RECIBOFOLHA/FOLHACADASTRADOS.php" method="POST">
                <div id="botaocancelar"> 
                    <p>
                       <input type="submit" id="btn" value=" Cancelar  " />
                    </p>
                </div>    
            </form>
        </div>    
    </div>
</body>
</html>

 

___________________________________________________

 

<?php

require "banco_de_dados.php";

function obtemfolhamesanoPorId($codigoMes) {
    return consultaBanco("SELECT funcionario.nome, funcionario.cargo, cargo.salario, folhamesano.mesano FROM funcionario, cargo, folhamesano WHERE funcionario.cargo = cargo.descricao AND folhamesano.mesano='{$codigoMes}'");

}

/** 
 * Esse é o script que irá responder a requisição assincrona que criamos no Javascript
 *
 * Aqui eu espero que a query string codigoFuncionario esteja definida (Pode estar vazia, mas precisa estar definida, por exemplo, codigoCargo= ) por isso usei isset
 *
 *
 */
if (isset($_GET['codigoMes'])) {
    $codigoMes = $_GET['codigoMes'];
    $nome = $_GET['nome'];

    /** Novamente encapsulando em métodos para adicionar contexto ao código */
    $folhamesano = obtemfolhamesanoPorId($codigoMes);

    if (empty($folhamesano)) {
        /** Como este é um código bem simples, usei o die para escrever o valor de saida
         * isso pq eu quero neste caso o texto seja escrito e a aplicação pare aqui
         * Eu poderia user um echo seguido de um return, mas para adicionar contexto
         * eu usei um método que deixe claro a intenção. Morre aqui e escreve o que eu estou pedindo.

         */
        die(json_encode([
            'erro' => 404,
        ]));
    
    $tabela = '<table border="1" border: solid gray 5px;>';//abre table
                                          $tabela .='<thead>';//abre cabeçalho
                                          $tabela .= '<tr>';//abre uma linha
                                          $tabela .= '<th width="410px">Nome</th>';
                                          $tabela .= '<th width="300px">cargo</th>';
                                          $tabela .= '<th width="140px">salario</th>';
                                          $tabela .= '</tr>';//fecha linha
                                          $tabela .='</thead>'; //fecha cabeçalho
                                          $tabela .='<tbody>';//abre corpo da tabela

                                        $db = pg_connect("port=55432 dbname=folha user=fortesrh password=1234");
                                        
                                        $consulta=pg_query($db,"SELECT funcionario.nome, funcionario.cargo, cargo.salario from funcionario INNER JOIN cargo ON funcionario.cargo = cargo.descricao ORDER BY funcionario.nome"); 
                                        
                                        while ($linha = pg_fetch_array($consulta)) {//declaração da variável linha trazendo o resultado da query
                                          $tabela .= '<tr>'; // abre uma linha
                                          $tabela .= '<td>'.$linha['nome'].'</td>'; // coluna nome do funcionario
                                          $tabela .= '<td align="center">'.$linha['cargo'].'</td>'; // coluna cargo
                                          $tabela .= '<td align="center">'.$linha['salario'].'</td>'; // coluna salario
                                          $tabela .= '</tr>'; // fecha linha
                                          

                                        }
                                         $tabela .='</tbody>'; //fecha corpo
                                         $tabela .= '</table>';//fecha tabela

                                        echo $tabela; // imprime


    }

    /** Neste caso eu quero escrever e sair (Se nada acontecer depois, ele irá sair sozinho), poderia usar o die, sim. Mas nao é um ponto onde precisa morrer, apenas sair um texto */
    echo json_encode($folhamesano);
} else {
    die(json_encode([
        'erro' => 404,
    ]));

                                          
}

 

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 violin101
      Caros amigos, saudações...
       
      Desculpa em recorrer aos amigos, com minha dúvida um pouco ingênua, se postei minha dúvida na opção errada, peço desculpas.
       
      Tenho 3(três) INPUT's que são:
      -----: quantidade
      -----: valor unitário
      -----: valor total
       
      Como faço para enquanto o INPUT do campo VALOR TOTAL for igual a 0,00 ---> o botão de GRAVAR fica desabilitado ?
       
      Tem como capturar através do JAVASCRIPT ?
       
      Grato,
       
      Cesar
       
    • By Public2004
      Boas. Gostaria da ajuda dos colegas para analisar a possibilidade de otimizar a seguinte situação: Tenho um "select" simples para trazer um registro específico e que atenda uma determinada condição (where) - Após este "select", recupero o "id" deste registro e utilizo para fazer mais dois "select", um para trazer o registro anterior e  outro para o próximo (id) utilizando MIN e MAX. Tem como fazer tudo isso em um único "select" ?
       
      Tks.
    • By EvertonFD
      Bom dia preciso de uma ajuda tenho que fazer parecer um btn em php quando o id da url for=3
      esse é o codigo mas o btn aparece mas não encaminha o link se alguem puder me ajudar agradeço
      <?php 
       $result_colaborador = " SELECT * FROM sts_colaborador  WHERE categoria_id=$id";
              $resultado_colaborador = mysqli_query( $conn, $result_colaborador );
              $row_colaborador = mysqli_fetch_assoc( $resultado_colaborador ); 
          $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
          $link= '';        
      if ($id == 3){
          echo "<a href='colaborador?id=<?php echo $row_colaborador ['id']; ?>class='btn btn-info'>teste</a>";
      }
      ?>
       
    • By Alberto Nascimento
      Preciso que o nome do arquivo que foi salvo durante o registro de um formulário, ao ser exibido através de uma busca e mostrado em ECHO possa se tornar um link.
      Como consigo fazer isso?
       
      echo "<a href="http://www.meusite.com.br/app/".$rows_cursos['novonome'].";  
       
    • By Onaita
      Boa noite, preciso de uma ajuda com o código abaixo:
      - Dentro da variável '$dados' tenho uma array em que o id repete com datas diferentes, preciso descartar uma das duas arrays repetidas com o mesmo 'id', mantendo a de menor data, ou seja, o resultado final seria:
      "Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) , [1] => Array ( [id] => 13 [data] => 2020-06-10 ) ) "
      - já tentei de tudo um pouco a princípio estou trabalhando com a ideia de loop dentro de loop, para varrer e comparar, mas como vcs podem ver estou deixando passar alguma coisa;
      <?php
      $dados =     [array("id" =>12, "data"=>"2020-07-02"),
                  array("id" =>13, "data"=>"2020-06-10"),
                  array("id" =>13, "data"=>"2020-06-15"),
                  array("id" =>12, "data"=>"2020-05-12")];
      $total = count($dados);
      foreach($dados as $item){
          for($i=1; $i < $total; $i++){
              if($item['id'] == $dados[$i]['id']){
                  if(strtotime($item['data']) <= strtotime($dados[$i]['data'])){
                      unset($dados[$i]);
                      $dados = array_values($dados);
                      $total = count($dados);
                      
                  }    
              }    
          }    
      }
      print_r($dados);
      Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) ) //resultado
       
      Se alguém achar o erro, ou uma forma de resolver esse problema ficarei muito agradecido!
      Obrigado e Um grande abrs a todos!
×

Important Information

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