Jump to content

Problema em chamar os botões Datatable


klasss

Recommended Posts

Olá a todos, 

Preciso de uma pequena explicação e ajuda para colocar o meu datatable a funcionar com os botões para fazer download em excel, PDF, .. 

 

<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/jszip-2.5.0/dt-1.11.5/b-2.2.2/b-html5-2.2.2/datatables.min.css"/>
 
 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"></script>
 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"></script>
 <script type="text/javascript" src="https://cdn.datatables.net/v/dt/jszip-2.5.0/dt-1.11.5/b-2.2.2/b-html5-2.2.2/datatables.min.js"></script>
 

  <script src="https://code.jquery.com/jquery-3.6.0.js"></script>
  
   <!-- CÓDIGO DE TEXTO -->

<link rel="stylesheet" href="//cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css">
  <script src="//cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js" defer></script>  
<script>
      $(document).ready( function () {
        $('#teste').DataTable({
          "language": {
            "url": "////cdn.datatables.net/plug-ins/1.11.3/i18n/pt_pt.json",
            dom: 'Bfrtip',
            buttons: [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ]
        }
        
        });
      } );

  </script>
 

apenas no fim chamo o ultimo script . 
Tentei colocar aqui os botões de exportar e segui o seguinte link https://datatables.net/extensions/buttons/examples/initialisation/export.html

 

os erros que obtenho são : 
datatables.min.js:143 Uncaught TypeError: l is not a function
    at datatables.min.js:143:244
    at datatables.min.js:48:299
    at datatables.min.js:48:326

 

Será a ordem como coloco os css e JS que não consigo ver os botões? 

Obrigado!

Link to comment
Share on other sites

Viva

Esta a falhar a implementação porque não estas a carregar a bibliotecas pela ordem que é indicada na página de exemplo.

brave-Ipu0z-WRJBm.png

Logo o primeiro erro que salta à vista é também que só incluis o JQuery no fim, e tem que ser a primeira biblioteca JS a ser incluída porque as restantes dependem dela.

Coloca os JS por ordem que indica no link (e na imagem) e vai funcionar

Feito é melhor que perfeito

Link to comment
Share on other sites

Antes de mais obrigado pela resposta. 

Então o primeiro que tenho de chamar é o 

<script src="https://code.jquery.com/jquery-3.6.0.js"></script>

já o fiz, logo depois coloquei os CSS

<link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css">
  <link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.2.2/css/buttons.dataTables.min.css">

 

Depois tenho a chamada da table no codigo 

              <table id="teste" class="table table-bordered table-striped">
                  <thead>
                  <tr>

                    <th>Data</th>
                    <th>Dependentes</th>
                    <th>Titulares de rendimentos</th>
                    <th>Situacoes especiais</th>

                  </tr>
                  </thead>
                  
                  <tbody>
                

                  </tbody>

                </table>

 

Chamo o JS 

<script type="text/javascript" src="https://cdn.datatables.net/buttons/2.2.2/js/dataTables.buttons.min.js"></script>
    
 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>

    <script type="text/javascript" src="https://cdn.datatables.net/buttons/2.2.2/js/buttons.html5.min.js"></script>
    <script type="text/javascript" src="https://cdn.datatables.net/buttons/2.2.2/js/buttons.print.min.js"></script>

e depois tenho a chamada do script

<script src="//cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js" defer></script>  
<script>
      $(document).ready( function () {
        $('#teste').DataTable({
          dom: 'Bfrtip',
        buttons: [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ]
    } );
      } );

  </script>

 

Mesmo assim nem sequer consigo ver os botões  'copy', 'csv', 'excel', 'pdf', 'print'

 

Alguma ideia do que continuo a fazer de errado ?

Obrigado!

Link to comment
Share on other sites

Viva, 

Não estas a seguir a ordem do carregamento indicado na documentação.

jquery.dataTables.min.js deve ser carregada depois do JQuery mas antes das restantes, e pelo exemplo que escreves só a carregas no fim de todas, mesmo antes do teu bloco de inicialização.

Sobre na lista de script para antes da dataTables.buttons.min.js

Feito é melhor que perfeito

Link to comment
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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.