Jump to content
AnthraxisBR

Geração de formulário com MySQL + PHP + Bootstrap

Recommended Posts

Bom dia, estou com uma dúvida acerca de um método de trabalho que estou utilizando um um sistema:

 

O problema é o seguinte, eu tenho muitos campos tipo text, com validações diferentes, validando número de recibo, ou cpf, cnpj, e outros códigos internos, tenho muitos campos select que também possuem muitos tratamentos diferentes com os dados, porém os selects todos passam apenas números em seu 'value', os outros tipos de input são poucos utilizados, o que eu fiz foi o seguinte:

 

Criei uma tabela no mysql com os formulários, e uma tabela com os inputs, e criei condições pra preencher os campos, exemplo:

 

Tenho um formulário com as seguintes definições:

 

3 abas (tab panel);

Aba 1 - Controle

             2 Colunas

             Coluna 1 - 4 inputs

             Coluna 2 - 4 inputs

Aba 2 - Notas

Aba 3 - Avançado

 

OBS: Uso os recursos do bootstrap pra montar as abas e colunas.

 

Para chamar esses inputs tenho a seguinte string que é interpretada por algumas funções, e essa string é gerada por um único formulário de criar formulários.

 

O formato é: a vírgula separa os inputs, e os dois pontos os separam os parâmetros, ficando assim ->  tabela:coluna:type:nome_input:Texto Input

 

controle:1:select:apuracao:Apuração,controle:1:text:recibo_simples:Recibo Simples,controle:1:data_d_m_A:data_de_envio:Data Envio,controle:1:data_d_m_A:data_de_recebimento:Data Recebimento,controle:2:text_read_only:usuarios:Responsável,controle:2:select:sintegra:Sintegra,controle:2:select:difal_destda:DIFAL / DeSDA,controle:2:select:retencoes_cpom:Retenções CPOM

 

E cada input também tem suas definições que chamam as funções necessárias pra cada um, por exemplo campo data_de_envio tem essas funções:

 

is_date, format_date_d_m_A

 

Depois que eu fiz isso não precisei mais de nenhum arquivo para formulários, somente chamar a função com os parâmetros corretos, assim de acordo com o que foi cadastrado no banco de dados o formulário é gerado e validado de forma cadenciada.

 

OBS final: Todos os formulários possuem muitas condições na hora de serem gerados, pois cada setor da empresa, e cada nível de usuário ( são 5 níveis e 4 setores ) interagem de forma diferente com as opções acerca da mesma coisa, exemplo: Fiscal de acesso nível 3 pode visualizar os campos do Contábil, porém não pode editar, mas os campos do fiscal ele pode editar, mas se algum usuário nível 4 marcar a permissão, o usuário de nível 3 pode editar, mas apenas naquele campo específico, e todas as modificações são salvas em um histórico.

 

A dúvida é: tem algum meio mais eficiente de se fazer isso? mesmo que aparentemente esteja funcionando como eu precise.

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 alysson122010
      Galera gostaria de transformar o template desse meu web site de uma so Sidebar Widgets Column para duas tipo ficaria postagem no meio das duas Sidebar Widgets.
      Como posso fazer isso?
       
      Site que quero fazer isso: https://linkatorrents.net/
    • By juliosertori
      Opa tudo bem?
       
      Tenho uma query que agrupa por CIDADE, o problema é que o cliente pode digitar a cidade, então as vezes digita com e sem caracter especial, por exemplo: São Paulo, e Sao Paulo, como posso agrupar os 2?
       
      "SELECT sum(p.total_pedido) as totalpedidos, p.id_empresa, p.id_cliente, c.id, c.cidade FROM pedidos AS p JOIN clientes AS c ON p.id_cliente = c.id WHERE p.id_empresa = '".$_CPD['CompanyId']."' AND p.finalizado = '1' AND MONTH(p.data_pedido) = '$mes_atual' group by c.cidade order by totalpedidos desc limit 0,10"  
    • By mateusmarcucci
      Pessoal, meu primeiro tópico, então desculpa qualquer coisa...
       
      É o seguinte, pra treinar to criando um sisteminha de aposta.
       
      Consiste em 2 campos, Valor apostado e ODD (odd é o quanto vai multiplicar a aposta caso ganhe). Porém quero colocar uma telinha aonde ele vai somar todos os ganhos e perdas do dia.
       
      Estou fazendo a soma direto no php, porém gostaria de passar o resultado dessa soma no banco de dados para assim ser possível somar as colunas.
       
      Eu tenho o metodo de escolha que é Ganhou ou Perdeu.
       
      Exemplo:   Valor apostado: R$5,00 | ODD 2.0 = R$10,00     Porém o lucro é apenas R$5,00. Tendo em vista que o lucro é subtraído do valor total - valor apostado. Caso perca, o valor apostado apenas passa a ser negativo
       
      Vou deixar o código que estou utilizando:
       
       
       
      <?php
          session_start();
          include_once("servidor.php");

          if (!empty($_SESSION['usuario']) and !empty($_SESSION['id'])) {
              $id = $_SESSION['id'];
              $nome = $_SESSION['nome'];
              $usuario = $_SESSION['usuario'];
          }else{
              $_SESSION['mensagem']="Você não está logado";
              header("Location: index.php");
              exit;
          }
          $id = $_SESSION['id'];        
          $consulta = "SELECT * FROM Resultados WHERE id = '$id' ORDER BY resultado ASC";
          $con = mysqli_query($conexao, $consulta);
          $banca = "SELECT * FROM Usuarios";
          $conBanca = mysqli_query($conexao, $banca);
          
      ?>

      <!DOCTYPE html>
      <html>
      <head>
          <title>Anote sua Aposta - Painel</title>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <link rel="stylesheet" type="text/css" href="css/cssEstilo.css">

          <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
          <!-- Font Awesome -->
          <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
          <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
          <script type="text/javascript" src="js/bootstrap.min.js"></script>
          <script type="text/javascript" src="js/jquery.mask.min.js"></script>
          <script type="text/javascript">
                  $(document).ready(function(){
                      $("#valor").mask("99990.00", {reverse: true})    
                      $("#odd").mask("999.999.990.00", {reverse: true})
                      
                  })        
                      
          </script>
      </head>

      <body class="fundoBodyPainel">
          <!-- topo -->
          <?php include('topo.php'); ?>
          <!-- fim topo -->
          <section>                        
                  <nav>
                      <p class="topoPainel"><strong>Bem vindo(a),</strong> <?php echo $_SESSION['nome'];?></p>
                  </nav>
          </section>
          <!-- Botão para acionar modal -->
          <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalExemplo">
                Adicionar uma nova aposta
          </button>
          <!-- Modal -->
          <div class="modal fade" id="modalExemplo" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog" role="document">
              <div class="modal-content">
                <div class="modal-header">
                  <h5 class="modal-title" id="exampleModalLabel">Adicionar uma nova aposta</h5>
                  <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
                    <span aria-hidden="true">&times;</span>
                  </button>
                </div>
                <div class="modal-body">
                  <section>
                      <div>
                          <form action="validarResultado.php" method="get" accept-charset="utf-8">
       
                                    <div class="form-group">
                                      <label>Valor Apostado:</label>
                                      <input type="text" class="form-control" id="valor" placeholder="Valor Apostado"
                                          name="valor">        
                                    </div>

                                    <div class="form-group">
                                      <label>ODD:</label>
                                      <input type="text" class="form-control" id="odd" placeholder="ODD" name="odd">                
                                   </div>
                                    <div class="form-group">
                                        <label for="Resultado">Resultado</label>
                                        <select id="inputEstado" class="form-control" name="resultado">
                                          <option selected>Escolher...</option>
                                          <option>Ganhou</option>
                                          <option>Perdeu</option>
                                        </select>
                                  </div>
                                </div>
                                    <button id="botaoCadastro" type="submit" name="enviar" class="btn btn-danger">Cadastrar</button>
                              </form>
                      </div>
                  </section>
                </div>
              </div>
            </div>
          </div>

          <section class="containerContatos">
              <div class="container">
                  <div class="row">
                      <div class="col-md-12">
                          <div class="d-flex justify-content-center table-responsive">
                              <table class="table table-striped" style="background: white;">
                                <thead class="thead-dark">
                                  <tr>
                                    <th scope="col">Valor</th>
                                    <th scope="col">ODD</th>
                                    <th scope="col">Resultado</th>
                                    <th scope="col">ID Aposta</th>
                                    <th scope="col">Retorno</th>
                                  </tr>
                                </thead>
                                <tbody>
                                    <?php
                                      while($dado = mysqli_fetch_assoc($con)) {
                                  ?>
                                  <tr>
                                    <td><?php echo $dado["valor"]; ?></td>
                                    <td><?php echo $dado["odd"]; ?></td>
                                    <td><?php echo $dado["resultado"]; ?></td>
                                    <td><?php echo $dado["idAposta"]; ?></td>
                                    <td><?php    
       
                                                $opcao1 = $dado["resultado"];                                                                                
                                                if ("$opcao1" == 'Ganhou') {
                                                    $retorno = ($dado["valor"] * $dado["odd"]) - $dado["valor"];
                                                    $retorno1 = $retorno;
                                                  $retorno1 = number_format($retorno1, 2, '.', '');
                                                  $retorno4 = $retorno;
                                                    echo "$retorno1";
                                                }
                                                if ("$opcao1" == 'Perdeu') {
                                                    $retorno = ($dado["valor"] - $dado["valor"]) - $dado["valor"];
                                                    $retorno1 = $retorno;
                                                  $retorno1 = number_format($retorno1, 2, '.', '');
                                                  $retorno4 = $retorno;
                                                    echo "$retorno1";
                                                }
                                                
                                            ?>                                          
                                    </td>                          
                                    </td>
                                  </tr>                            
                                  <?php } ?>
                                </tbody>
                              </table>
                          </div>
                      </div>
                  </div>
              </div>
          </section>    

          <?php  ?>
          

          
          <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
          <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
      </body>

      </html>
    • By violin101
      Caros amigos, saudações...
       
      Gostaria de tirar uma dúvida.
       
      Tenho um formulário que consta 03(três) ABAS, que são: Financeiro / Estoque / Observações  <<=== até aqui tudo bem
       
      Preciso que após o usuário clicar no botão ADICIONAR, o sistema possa VALIDAR todos os campos requerido das ABAS.
       
      Observação: quando valido o formulário o sistema apenas VALIDA os campos da ABA que estiver ativa.
       
      Como faço para VALIDAR todos os campos das ABAS mesmo que não estiver ativa ?
       
      Grato,
       
      Cesar
×

Important Information

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