【问题标题】:How do I print the page without the datatable如何在没有数据表的情况下打印页面
【发布时间】:2016-04-06 14:56:43
【问题描述】:

我正在尝试从 sql 打印数据以用于记录目的,但我使用的是数据表,因此当我尝试单击打印时,记录不会显示所有内容。它仅显示数据表第 1 页的当前数据。我将如何做?另外,当我尝试打印它时,显示屏还显示了 php.ini 的包含功能。允许使用 Javascript 解决方案。这是我的代码

        <?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>

【问题讨论】:

标签: php jquery html datatable


【解决方案1】:

请使用

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

请检查DocumentReference

【讨论】:

    【解决方案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;
        }
    

    您的打印功能已就绪。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多