简体   繁体   中英

Page breaks only once

I have a PHP/HTML page that prints a bunch of receipts. I'm trying to make it page break after each when actually printing. I've tried several style and class codes, but the best I've been able to do is get it to break after the first, but it never repeats. IOW I want it to page break after each time it prints the table referred to in the code.

enter code here
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"         "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<style type="text/css">
@media all {
.page-break { display: none; }
}

@media print {
.page-break { display: block; page-break-before: always; }
}
</style>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>North Atlanta Riding Club</title>
<link href="../styles.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style45 {
    color: #FF0000;
    font-weight: bold;
    font-style: italic;
}
-->
</style>
</head>

<body>
<?php 
do{
        //THIS SEES IF THE LOGGED IN MEMBER HAS CONFIRMED CLOTHING
        $colname_confirmed = "1";
        if (isset($row_roster['key1'])) {
          $colname_confirmed = (get_magic_quotes_gpc()) ? $row_roster['key1'] : addslashes($row_roster['key1']);
        }
        mysql_select_db($database_connection1, $connection1);
        $query_confirmed = sprintf("SELECT * FROM clothingorder WHERE who = %s AND confirmed = 'Y' ORDER BY key1 ASC", $colname_confirmed);
        $confirmed = mysql_query($query_confirmed, $connection1) or die(mysql_error());
        $row_confirmed = mysql_fetch_assoc($confirmed);
        $totalRows_confirmed = mysql_num_rows($confirmed);

        if($totalRows_confirmed<>0){?>

                    <table width="990" border="0" align="left" cellpadding="0" cellspacing="0">
                      <!--DWLayoutTable-->
                      <tr>
                        <td width="990" height="31" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
                      </tr>
                      <tr>
                        <td height="83" valign="top">
                          <table border="1" align="left" cellpadding="2" cellspacing="0" bordercolor="#000000">
                            <tr bgcolor="#FFFFFF" class="style5">
                              <td colspan="9"><p>Member- <strong><?php echo $row_roster['fname']." ".$row_roster['lname']; ?><br>
                                  </strong>Telephone- <strong><?php echo $row_roster['tel']; ?></strong>&nbsp;&nbsp;&nbsp;Email- <strong><?php echo $row_roster['email']; ?></strong><br>
                                  Address- <br>
                                  <strong>
                                  <?php if($row_roster['add1']<>''){echo $row_roster['add1']."<br>";} ?>
                                  </strong>              
                                  <strong>
                                  <?php if($row_roster['add2']<>''){echo $row_roster['add2']."<br>";} ?>
                                  </strong>
                                  <strong>
                                  <?php if($row_roster['city']<>''){echo $row_roster['city'].", ";} ?>
                                  </strong>
                                  <strong>
                                  <?php if($row_roster['state']<>''){echo $row_roster['state']." ";} ?>
                                  </strong>
                                  <strong>
                                  <?php if($row_roster['zip']<>''){echo $row_roster['zip'];} ?>
                                  </strong><br>
                              </p>
                                </td>
                            </tr>
                            <tr bgcolor="#FFFFFF" class="style5">
                              <td><div align="center"><strong>Qty</strong></div></td>
                              <td><strong>Item</strong></td>
                              <td><strong>PO?</strong></td>
                              <td><div align="center"><strong>Paid?</strong></div></td>
                              <td><div align="center"><strong>Mens/Womens</strong></div></td>
                              <td><div align="center"><strong>Style</strong></div></td>
                              <td><div align="center"><strong>Cut</strong></div></td>
                              <td><div align="center"><strong>Size</strong></div></td>
                              <td><div align="center"><strong>Price</strong></div></td>
                      </tr>
                            <tr bgcolor="#FFFFFF" class="style5">
                              <td colspan="8"><div align="right">Narc Membership </div></td>
                              <td><div align="center">
                              <?php if($row_roster['paid']=="Y"){echo "Paid";$total=0;}else{echo "$".$row_dues['dues'];$total=$row_dues['dues'];} ?></div></td>
                            </tr>
                            <?php 
                            do { 
                                    $colname_item = "1";
                                    if (isset($row_confirmed['item'])) {
                                    $colname_item = (get_magic_quotes_gpc()) ? $row_confirmed['item'] : addslashes($row_confirmed['item']);
                                    }
                                    mysql_select_db($database_connection1, $connection1);
                                    $query_item = sprintf("SELECT key1, item, price, free FROM clothing WHERE key1 = %s", $colname_item);
                                    $item = mysql_query($query_item, $connection1) or die(mysql_error());
                                    $row_item = mysql_fetch_assoc($item);
                                    $totalRows_item = mysql_num_rows($item);
                                    ?>
                            <tr class="style5">
                              <td><div align="center"><?php echo $row_confirmed['qty']; ?></div></td>
                              <td><?php echo $row_item['item']; ?></td>
                              <td><div align="center"><span class="style45">
                                <?php if($row_confirmed['postorder']=='Y'){?>YES<?php }?></span></div></td>
                              <td><div align="center"><?php echo $row_confirmed['paid']; ?></div></td>
                              <td><div align="center"><?php echo $row_confirmed['mf']; ?></div></td>
                              <td><div align="center"><?php echo $row_confirmed['style']; ?></div></td>
                              <td><div align="center"><?php echo $row_confirmed['cut']; ?></div></td>
                              <td><div align="center"><?php echo $row_confirmed['size']; ?></div></td>
                              <td><div align="center">
                              <?php if($row_confirmed['price'] == 0){echo "Free";
                                }else{
                                    if($row_confirmed['paid']=="Y"){echo "Paid";}else{echo $row_confirmed['price'];$total = $total + $row_confirmed['price'];}
                                    } ?>

                              </div></td>
                            </tr>
                            <?php 

                            } while ($row_confirmed = mysql_fetch_assoc($confirmed)); ?>
                                    <tr bgcolor="#FFFFFF" class="style5">
                              <td colspan="8"><div align="right"><em><strong>Total Owed</strong></em></div></td>
                              <td><div align="center" class="style6"><em><strong><?php echo "$".$total.".00";?></strong></em></div></td>
                            </tr>
                    </table>
                    </td>
                      </tr>
                    </table>
                    <div class="page-break"></div>
        <?php 
        }

}while($row_roster = mysql_fetch_assoc($roster));
?>
</body>

I too am finding the page break in @media print {} to be "beyond flaky"! In fact, so far finding the @media print to be flaky entirely. Floats aren't working well and several styling details just don't seem to be displaying as envisioned. It seems that browser support for "print" is lackluster. I am working on an application that should print name badges and precision is critical regarding placement and sizing. I'm close to giving up on the @media print {} styling though I'd hoped to have it look web-savvy online but to print as I envision. Might have to settle for it looking like the badges. I'm using code which adds that page-break class div every 6 "records" (badges are 6-up in 2 columns of 3, 4" x 3" w).

If like me, you're unable to find the method that uses @media print {} would it work to just display the receipt on-screen as you intend it to print? May also be your workaround until (and if) the browsers catch up to w3c conventions. I'd love to find a good publication explaining what does and doesn't work about the @media print styling otherwise the screen styling should work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM