2016-01-02 2 views
3

Я пытаюсь напечатать данные из sql для целей записи, но я использую datatable, поэтому, когда я пытаюсь щелкнуть печать, запись не показывает все. Он отображает только текущие данные со страницы 1 данных. Как я это сделаю? Кроме того, когда я попытался распечатать его, на дисплее также отображается функция включения php. Разрешения Javascript разрешены. Вот мой кодКак распечатать страницу без данных datatable

 <?php include ('sidebar.php'); ?> 
    <main id="playground"> 
    <?php include ('header.html'); ?> 

    <div class="container-fluid"> 
     <div class="row"> 
     <div class="col-md-12"> 


      <section class="panel panel-info"> 
      <header class="panel-heading"> 
       <h4 class="panel-title">List of employees</h4> 
      </header> 
      <div class="panel-body"> 

      <?php 
      include('configuration.php'); 
      $sql = "SELECT firstname, lastname, status, idnumber FROM employees ORDER BY lastname ASC"; 
      $result = $conn->query($sql); 
      ?> 
       <table class="table table-striped datatable" id="datatables" > 
       <thead> 
        <tr> 
        <th>Last Name</th> 
        <th>First Name</th> 
        <th>ID Number</th> 
        </tr> 
       </thead> 



        <?php 
         if ($result->num_rows > 0) { // output data of each row?> 
         <tbody> 
         <button onclick="myFunction()">Print this page</button> 
          <?php while($row = $result->fetch_assoc()) { 
           if($row['status']=='p'){ 
         ?> 

           <?php {       //this form will display the set of pending applications 

             echo'<tr>'; 
             echo '<td>' . $row['lastname'] . '</td>'; 
             echo '<td>' . $row['firstname'] . '</td>'; 
             echo '<td>' . $row['idnumber'] . '</td>'; 
            echo'</tr>'; 
            } 
           ?> 

         <?php } //if statement 
           } //while statement 
         ?> 
         </tbody> 
         </table> 


         <?php 
         }else { 
          echo "0 results"; 
         } 
      ?> 



      </div> 
      </section> 
      <!-- end of STRIPED ROWS TABLE --> 

     </div> <!--/col-md-12 --> 
     </div> <!--/row --> 
    </div> <!--/container-fluid --> 


     </main> <!-- /playground --> 




     <?php include ('notifications.html'); ?> 



     <div class="scroll-top"> 
      <i class="ti-angle-up"></i> 
     </div> 
     </div> <!-- /animsition --> 


    <script> 
    function myFunction() { 
     window.print(); 
    } 
    </script> 

     </body> 
    </html> 
+1

возможно дубликат http://stackoverflow.com/questions/468881/print-div-id-printarea-div-only –

+0

use 'window.print();' –

+0

Здравствуйте! Я использовал myFunction(), который вызывает window.print(), если вы видели мой код :) @ParthTrivedi – Regina

ответ

2

Пожалуйста, используйте

$('#datatables').DataTable({ 
    buttons: [ 
     'print' 
    ] 
}); 

Пожалуйста, проверьте Document и Reference

2

Использование Ниже 2 функции:

function CreateTableFromObject(tblObj) { 
    objHeader = JSON.parse(JSON.stringify(tblObj.buttons.exportData()))["header"]; 
    objRows = JSON.parse(JSON.stringify(tblObj.buttons.exportData()))["body"]; 

    //Check If Action Exists in Table and remove it 
    var index = objHeader.indexOf('Action'); 
    if (index > -1) { 
     objHeader.splice(index, 1); 
    } 

    tblToPrint = "<table style='border: 1px solid black; border-collapse: collapse;'><thead><tr>"; 
    $.each(objHeader, function (key, value) { 
     tblToPrint += "<th style='border: 1px solid black;'>" + value + "</th>"; 
    }); 
    tblToPrint += "</tr></thead><tbody>"; 
    $.each(objRows, function (key, value) { 
     tblToPrint += "<tr>"; 
     //If action exists then decrease target by 1 
     if (index > -1) { 
      target = value.length - 1; 
     }else { 
      target = value.length; 
     } 
     for (var i = 0; i < target; i++) { 
      tblToPrint += "<td style='border: 1px solid black;'>" + value[i] + "</td>"; 
     } 
     tblToPrint += "</tr>"; 
    }); 
    tblToPrint += "</tbody></table>"; 
    return tblToPrint; 
} 


function PrintWindowAddParts() { 
     var tblObj = $("#YourTable").DataTable(); 
     var tblViewRMA = CreateTableFromObject(tblObj); 
     var printContents = "<div class='dataTables_wrapper form-inline dt-bootstrap'>" + tblViewRMA + "</div>"; 
     var size = 'height=' + $(window).height() + 'px,width=' + $(window).width() + 'px'; 
     var mywindow = window.open('', 'PRINT', size); 
     mywindow.document.write('<html><head><title>' + "My Title" + '</title>'); 
     mywindow.document.write('</head><body >'); 
     mywindow.document.write('<h4>' + "My Title" + '</h4>'); 
     mywindow.document.write(printContents); 
     mywindow.document.write('</body></html>'); 
     mywindow.document.close(); 
     mywindow.focus(); 
     mywindow.print(); 
     mywindow.close(); 
     return true; 
    } 

Ваша функция печати готово.

Смежные вопросы