Jump to content
violin101

PHP - Imprimir Relatório apenas ITENS selecionado na tabela

Recommended Posts

Caros amigos, saudações...

 

Desculpa em recorrer ao auxílio dos amigos.

 

Gostaria de tirar uma dúvida, que é o seguinte.

 

Tenho uma Tabela de Produtos e gostaria de Imprimir apenas os produtos selecionados, por exemplo:

 

Tabela

[ X ] - Caneta

[     ] - Lápis

[ X ] - Borracha

[     ] - Régua

[ X ] - Caderno

 

Como faço para Imprimir somente os itens selecionados da Tabela ?

 

Grato,

 

Cesar

Share this post


Link to post
Share on other sites

O que você já tem pronto? Como está a estrutura das tabelas que vão ser consultadas?

Share this post


Link to post
Share on other sites

Caro amigo ESerra, saudações...

 

A view para Listar os Produtos, traz todas as informações que preciso. A parte de seleção essa não tenho ideia de como realizar.

 

Estou usando PHP + Codeigniter, para escrever os fontes.

 

O meu código para Listar os Produtos está conforme abaixo:

  <!-- DataTables -->
  <link rel="stylesheet" href="<?php echo base_url();?>templates/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">

 <?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

 <div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <section class="content-header">
      <h1>
        Produto
      </h1>
      <ol class="breadcrumb">
        <li><a href="<?php echo base_url()?>contas/"><i class="fa fa-dashboard"></i> Home</a></li>
        <li class="active">Produto</li>
      </ol>
    </section>

    <?php
    if (!$results) { ?>

    <!-- Main content -->
    <section class="content">
      <div class="row">
        <!-- left column -->
        <div class="col-xs-12">
          <!-- general form elements -->
          <div class="box box-primary">

            <div class="box-header">
              <a href="<?php echo base_url() ?>contas/" id="" class="btn btn-danger"><i class="fa fa-undo"></i> Voltar</a>&nbsp;              
              <?php 
                 if($this->permission->checkPermission($this->session->userdata('permissao'), 'aProduto')) { ?>
                    <a href="<?php echo base_url();?>contas/produtos/adicionar" class="btn btn-success"><i class="icon-plus icon-white"></i> Adicionar Produto</a>    
              <?php } ?>
            </div>            

            <div class="box-body">

                <div class="widget-content nopadding">
                    <table id="tab_prd" class="table table-bordered table-hover">
                        <thead style="background: #cecece;">
                        <tr>
                            <th style="text-align:center;">Cód. Interno</th>
                            <th style="text-align:center;">Descrição Produto</th>  
                            <th style="text-align:center;">Categoria</th> 
                            <th style="text-align:center;">Status</th>
                            <th style="text-align:center;">Img</th>                              
                            <th style="text-align:center;">Ação</th>
                        </tr>
                        </thead>
                        <tbody>
                            <tr>
                              <td colspan="6" style="text-align:center;">
                                <img src="<?php echo base_url()?>assets/img/logo_mail.png" alt="" 
                                     style="height:100%; margin: 50px 40px;">
                              </td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>

          </div>

        </div>
          
      </div>
    </section>

    <?php } else { ?>

    <!-- Main content -->
    <section class="content">
      <div class="row">
        <div class="col-xs-12">
          <div class="box">

            <div class="box-header">
              <a href="<?php echo base_url() ?>contas/" id="" class="btn btn-danger"><i class="fa fa-undo"></i> Voltar</a>&nbsp;              
              <?php 
                 if($this->permission->checkPermission($this->session->userdata('permissao'), 'aProduto')) { ?>
                    <a href="<?php echo base_url();?>contas/produtos/adicionar" class="btn btn-success"><i class="icon-plus icon-white"></i> Adicionar Produto</a>    
              <?php } ?>
            </div>

            <!-- /.box-header -->
            <div class="box-body">
              <table id="tab_clie" class="table table-bordered table-hover">
                <thead style="background: #cecece;">
                <tr>
                    <th style="text-align:center;">Cód. Interno</th>                            
                    <th style="text-align:center;">Descrição Produto</th>  
                    <th style="text-align:center;">Categoria</th> 
                    <th style="text-align:center;">Status</th>
                    <th style="text-align:center;">Img</th>                                
                    <th style="text-align:center;">Ação</th>
                </tr>
                </thead>
                <tbody>
                <?php foreach ($results as $r) {
                if ($r->statusProd == 1) {
                    $status = 'Ativo';
                    $cors = '#000000';
                } else {
                    $status = 'Inativo';
                    $cors = '#B80808';
                }

                //Captura o Campo ESPÉCIE do produto
                $esp = '<strong style="font-size:12px;">ESP: </strong>'.$r->prd_unid;
              
                echo '<tr>';
                  echo '<td width="10" height="10" style="text-align:center;">'.$r->cod_interno.'</td>';
                  echo '<td width="280" height="10" style="text-align:left;">'.$r->descricao.' - '.$esp.'</td>';
                  echo '<td width="20" height="10" style="text-align:center;">'.$r->categ.'</td>';
                  echo '<td width="50" height="10" style="text-align:center; color:'.$cors.'"><strong>'.$status.'</strong></td>';              

                  echo '<td width="10" height="10" style="text-align:center;">' ?>
                         <?php if ($r->imagemCapa != null) { ?>
                              <img src="<?php echo $r->imagemCapa; ?>" 
                                   width="40px;" height="30px;" alt="">
                            <?php } else { ?>
                              <img src="<?php echo base_url() ?>assets/img/semImg.jpg" 
                                   width="40px;" height="30px;" alt="">
                            <?php } ?>                    
                          <?php
                       '</td>';

                  echo '<td width="70" style="text-align:center;">';
                  
                    if($this->permission->checkPermission($this->session->userdata('permissao'), 'vProduto')) {
                       echo '<a href="'.base_url().'contas/produtos/visualizar/'.$r->idProdutos.'" style="margin-right: 3%; padding: 2px 5px;" class="btn btn-default tip-top" title="Visualizar"><i class="fa fa-search icon-white"></i></a>';
                    }

                    if($this->permission->checkPermission($this->session->userdata('permissao'), 'eProduto')) {
                       echo '<a href="'.base_url().'contas/produtos/editar/'.$r->idProdutos.'" style="margin-right: 3%; padding: 2px 5px;" class="btn btn-info tip-top" title="Editar"><i class="fa fa-edit icon-white"></i></a>';
                    }
                    
                    if($this->permission->checkPermission($this->session->userdata('permissao'), 'dProduto')) {
                       echo '<a href="#modal-excluir" role="button" data-toggle="modal" prod="'.$r->idProdutos.'" style="margin-right: 3%; padding: 2px 5px;" class="btn btn-danger tip-top" title="Desativar"><i class="fa fa-remove icon-white"></i></a>';
                    }
                    
                  echo '</td>';
                echo '</tr>';

                }//Fim do Foreach ?>

                </tbody>
              </table>
            </div>
            <!-- /.box-body -->
          </div>
          <!-- /.box -->

        </div>
        <!-- /.col -->
      </div>
      <!-- /.row -->
    </section>
    <!-- /.content -->
     
    <?php } ?>

  </div>


        <div class="modal modal-danger fade" id="modal-excluir">
          <div class="modal-dialog">
            <div class="modal-content">
              <form action="<?php echo base_url() ?>contas/produtos/desativa" method="post" >
              <div class="modal-header">
                <h4 class="modal-title"><strong>Desativar Produto</strong></h4>
              </div>
              <div class="modal-body">
                <input type="hidden" id="idProdutos" name="id" value="" /> 
                  <h4 style="text-align:center;">Desativar este Produto, poderá influênciar nos demais registro do sistema.</h4>
                  <h4 style="text-align:center;">Deseja realmente Desativar este Produto ?</h4>
              </div>
              <div class="modal-footer">
                <button class="btn btn-warning pull-left" data-dismiss="modal">Cancelar</button>
                <button class="btn btn-primary">Confirmar</button>
              </div>
              </form>
            </div>
          </div>
        </div>

 
<?php $this->load->view('vitrine/footer'); ?>


<script src="<?php echo base_url();?>templates/bower_components/datatables.net/js/jquery.dataTables.js"></script>
<script src="<?php echo base_url();?>templates/bower_components/datatables.net-bs/js/dataTables.bootstrap.js"></script>
<script>
  $(function () {
    $('#tab_clie').DataTable({
      'paging'      : true,
      'lengthChange': false,
      'searching'   : true,
      'ordering'    : true,
      'info'        : true,
      'autoWidth'   : false
    })
  })
</script>

<!--Recebe os Dados do [a href] para Excluir -->
<script type="text/javascript">
    $(document).ready(function(){
      $(document).on('click', 'a', function(event) {        
        var prod = $(this).attr('prod');
        $('#idProdutos').val(prod);
      });
    });
</script>

 

Grato por sua atenção.

 

Atenciosamente,

 

Cesar

 

 

Share this post


Link to post
Share on other sites

Vou te passar a lógica e você vai ter que adaptar a realidade do seu projeto.

 

Na listagem dos produtos, crie inputs do tipo checkbox, dê para eles o mesmo nome seguido de colchetes:

 

<input type="checkbox" name="produtos[]" value="1" />
<input type="checkbox" name="produtos[]" value="2" />
<input type="checkbox" name="produtos[]" value="3" />

 

No value coloque o id dos produtos (1, 2, 3...)

 

No action desse formulário resgate os checkboxes selecionados com um implode:

 

$selecionado = implode(',',$_POST['produtos']);

Isso dai vai retornar todos os itens selecionados, separados por uma vírgula, por exemplo, se você selecionar todos vai ficar: 1,2,3, se você selecionar só os dois primeiros, 1,2 e assim por diante.

 

Para realizar a consulta (aqui vou assumir que se trata do MySQL), use o IN:

 

SELECT * FROM tabela WHERE id IN ($selecionado)

Claro que você deve tratar os valores recebidos do formulário, isso dai é apenas ilustrativo.

 

Pronto, isso vai retornar o que você selecionou no formulário.

Share this post


Link to post
Share on other sites

Amigo ESerra, saudações...

 

Obrigado por dividir seus conhecimentos.

 

Apenas uma observação: no código acima que anexei, não estou usando FORM nas tabelas, como pode constatar.

 

Estou usando Mysql com banco de dados.

 

Desculpa minha ingenuidade e peço HUMILDEMENTE se o amigo teria algum exemplo, mesmo que simples, para melhor entendimento.

 

Grato,

 

Cesar

Share this post


Link to post
Share on other sites

Como disse, aquela é a lógica e você tem que adequar a sua realidade, mesmo sem usar formulário, você vai precisar dos inputs e você terá que submeter essa informação ao PHP, seja com um formulário simples ou com ajax.

Share this post


Link to post
Share on other sites
Em 11/04/2020 at 12:02, ESerra disse:

Vou te passar a lógica e você vai ter que adaptar a realidade do seu projeto.

 

Na listagem dos produtos, crie inputs do tipo checkbox, dê para eles o mesmo nome seguido de colchetes:

 


<input type="checkbox" name="produtos[]" value="1" />
<input type="checkbox" name="produtos[]" value="2" />
<input type="checkbox" name="produtos[]" value="3" />

 

No value coloque o id dos produtos (1, 2, 3...)

 

No action desse formulário resgate os checkboxes selecionados com um implode:

 


$selecionado = implode(',',$_POST['produtos']);

Isso dai vai retornar todos os itens selecionados, separados por uma vírgula, por exemplo, se você selecionar todos vai ficar: 1,2,3, se você selecionar só os dois primeiros, 1,2 e assim por diante.

 

Para realizar a consulta (aqui vou assumir que se trata do MySQL), use o IN:

 


SELECT * FROM tabela WHERE id IN ($selecionado)

Claro que você deve tratar os valores recebidos do formulário, isso dai é apenas ilustrativo.

 

Pronto, isso vai retornar o que você selecionou no formulário.

 

Amigo ESerra

 

Como passo para a Controller e a Model os dados Selecionados ?

Esse está sendo minha maior dúvida.

 

Grato,

 

Cesar

Share this post


Link to post
Share on other sites

Não uso Codeigniter, mas provavelmente a documentação dele tenha essa resposta.

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 Sapinn
      Estou usando o editor SummerNote em um projeto mas ele não está enviando os dados com o HTML apenas o texto. Eu estou colocando assim:

               
                                        <textarea id="summernote" class="textarea" required name="content">     <script> $('#summernote').summernote({         tabsize: 2,         height: 500,         toolbar: [           ['style', ['style']],           ['font', ['bold', 'underline', 'clear']],           ['color', ['color']],           ['para', ['ul', 'ol', 'paragraph']],           ['table', ['table']],           ['insert', ['link', 'picture', 'video']],           ['view', ['fullscreen', 'codeview', 'help']]         ]       });           </script>  
       
    • By Sapinn
      Galera estou usando o PHPStorm para alguns projetos e estou com meus arquivos marcados em vermelho não sei oq é alguem pode me ajuda?
       
       

    • By danielambrosio
      Estou trabalhando numa programação PHP é conectado na tabela (cl_configs) para reconhece coluna name que reconhece esses 5 campos.
      e também que adiciona esses 5 valores é adicionado nessa outra tabela (cl_ads_block_ips) nesses 8 coluna (id, ip, clicks, last_click, dads_refresh_qtd, dads_refresh_data, dads_refresh_ldata, clicks_rotativo_dia).
      E a conexão que eu usa era de outro site e não estou tendo problema e configurar em outro site que reconhece essa banco de dados abaixo.
       
      <?php $host = "localhost"; $user = "ads"; $pass = "_CMpFF4Hpa!G_gTh"; $dbname = "ads"; $port = 3306; try {     $conn = new PDO('mysql:host=' . $host . ';port=' . $port . ';dbname=' . $dbname, $user, $pass);     //echo "Conexão com banco de dados realizado com sucesso!"; } catch (PDOException $err) {     echo "Erro: Conexão com banco de dados não foi realizada com sucesso. Erro gerado " . $err->getMessage(); } ?>  
      Conecta com sucesso só não está reconhecendo a tabela (cl_configs) e nem adicionando na tabela (cl_ads_block_ips).
       
       
      Agora não sei porque não esta reconhecendo (cl_configs) e nem adicionando (cl_ads_block_ips).
       
       


    • By ment0r
      Boa tarde a todos.

      Estou iniciando um estudo com o banco MySQL (trabalho co PostgreSQL e Firebird) para futuros trabalhos. Bom, me deparei com um problema chato: caracteres especiais.
      Um exemplo: T�tulo.
      Não consigo exibir no meu site tais caracteres. O banco tem Charset/Collation: utf8/utf8_bin como configuração.
      Já usei o utf_encode e utf_decode - não resolveu.

      Alguém sabe o que mais posso fazer?
      Desde já, muito obrigado.
    • By asacap1000
      Galera salve salve!!
      Estou com um projeto em que são armazenados vídeos, porém seguindo os requisitos exigidos, para visualizar e baixar esses vídeos eles tem que aparecer com numero de cadastro do usuário que está acessando no centro do video como uma marca d'agua.
       
      Para simplesmente aparecer na tela eu consigo fazer uma camada superior com css e apresentar os dados do usuário mas para baixar o vídeo ele já faz sem a marca.
       
      Vocês conhecem algum recurso pra adicionar essa marca? ela não pode ficar no arquivo original pois outros usuário poderão baixar com sua identificação na tela.
       
      Se alguem puder me dar um norte ajudaria muito
×

Important Information

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