Верхний колонтитул отображается как нижний колонтитул, даже если он расположен внизу - PullRequest
0 голосов
/ 09 января 2012

Я написал страницу, которая отлично работает для отображения нужных мне данных. Проблема в том, что мой колонтитул отображается как заголовок ... Я не знаю почему. Может кто-нибудь объяснить? Я помещаю его в конец страницы, после всего php-кода, и мне кажется, что он должен быть вставлен туда, но по какой-то причине он отображается сверху.

Если кто-то может помочь, это будет высоко ценится.

Вот эта страница: http://kaboomlabs.com/testbed/print.php?id=1

Вот код:

<?php
require_once('tb/connectvars.php');
echo '<div id="printwrap">'
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>PDI NCMR - Print</title>
  <link rel="stylesheet" type="text/css" href="tb/postie.css" />
</head>
<body>
   <div id="logo">
    <img src="tb/PDI_Logo_2.1.gif" alt="PDI Logo" />
</div>

<?php
  // Connect to the database
  $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  // Grab the profile data from the database
  if (!isset($_GET['id'])) {
    $query = "SELECT * FROM ncmr WHERE id = '$id'";
  }
  else {
    $query = "SELECT * FROM ncmr WHERE id = '" . $_GET['id'] . "'";
  }
  $data = mysqli_query($dbc, $query);

  if (mysqli_num_rows($data) == 1) {

    // The user row was found so display the user data
    $row = mysqli_fetch_array($data);
    echo'<div id="title"><h3 id="NCMR2">Non-Conforming Materials Report (NCMR:&nbsp;&nbsp;' . $row['rma'] . ')</h3></div>';
        echo '<form id="all">';
            echo '<fieldset>';
//Part, Rev, Part Description, NCMR Qty
            echo '<div id="box1p">';
                if (empty($row['ab'])) $row['ab'] = "Empty";
                if (empty($row['date'])) $row['date'] = "Empty";
                if (empty($row['part'])) $row['part'] = "Empty";
                if (empty($row['rev'])) $row['rev'] = "Empty";
                if (empty($row['partdesc'])) $row['partdesc'] = "Empty";
                if (empty($row['ncmrqty'])) $row['ncmrqty'] = "Empty";
                echo '<div id="abp"><span class="b">Added By:&nbsp;&nbsp;</span>' . $row['ab'] . '</div>';
                echo '<div id="datep"><span class="b">Date Filed:&nbsp;&nbsp;</span>' . $row['date'] . '</div>';
                echo '<div id="partp"><span class="b">Part Number:&nbsp;&nbsp;</span>' . $row['part'] . '</div>';
                echo '<div id="revp"><span class="b">Part Revision:&nbsp;&nbsp;</span>' . $row['rev'] . '</div>';
                echo '<div id="partdescp"><span class="b">Part Description:&nbsp;&nbsp;</span>' . $row['partdesc'] . '</div>';
                echo '<div id="ncmrqtyp"><span class="b">NCMR Qty:&nbsp;&nbsp;</span>' . $row['ncmrqty'] . '</div>';
            echo '</div>';

        //Part, Rev, Part Description, NCMR Qty, JO, SN and INV
            echo '<div id="box2p">';
                if (empty($row['comp'])) $row['comp'] = "Empty";
                if (empty($row['ncmrid'])) $row['ncmrid'] = "Empty";
                if (empty($row['rma'])) $row['rma'] = "Empty";
                if (!empty($row['NCMR_Qty'])) $row['NCMR_Qty'] = "Empty";
                    echo '<div id="comp"><span class="b">Company:&nbsp;&nbsp;</span>' . $row['comp'] . '</div>';
                    echo '<div id="ncmrid"><span class="b">Customer NCMR ID:&nbsp;&nbsp;</span>' . $row['ncmrid'] . '</div>';
                    echo '<div id="rma"><span class="b">Internal RMA:&nbsp;&nbsp;</span>' . $row['rma'] . '</div>';
                    echo '<div id="jno"><span class="b">Job #:&nbsp;&nbsp;</span>' . $row['jno'] . '</div>';
            echo '</div>';

            //Inventory On Hand, Inventory Check, Supplier Name, Supplier Number, Manufacturer Part Number, Manufactuer Serial Number and NCMR ID
            echo '<div id="box3p">';
                if (empty($row['fdt'])) $row['fdt'] = "Empty";
                if (empty($row['cof'])) $row['cof'] = "Empty";
                    echo '<h2>Failures</h2>';
                            echo '<div id="fdt"><span class="b">Failure Due To:&nbsp;&nbsp;</span><br />' . $row['fdt'] . '</div>';
                            echo '<div id="cof"><span class="b">Class of Failure:&nbsp;&nbsp;</span><br />' . $row['cof'] . '</div>';
                echo '</div>';

             //Nonconformity, Disposition, Comments and Comments & Additional Details
            echo '<div id="box4p">';
                if (empty($row['fab1'])) $row['fab1'] = "Empty";
                if (empty($row['fab2'])) $row['Disposition'] = "Empty";
                if (empty($row['fab3'])) $row['Comments'] = "Empty";
                echo '<h2>Fabricators</h2>';
                        echo '<div id="fab1"><span class="b"></span>' . $row['fab1'] . '</div>';
                        echo '<div id="fab2"><span class="b"></span>' . $row['fab2'] . '</div>';
                        echo '<div id="fab3"><span class="b"></span>' . $row['fab3'] . '</div>';
            echo '</div>';

            //PO, PO Date, and Date Recieved
            echo '<div id="box5p">';
                if (empty($row['non'])) $row['non'] ="Empty";
                if (empty($row['dis'])) $row['dis'] ="Empty";
                if (empty($row['comm'])) $row['comm'] ="Empty";
                if (empty($row['caad'])) $row['caad'] ="Empty";
                    echo '<div id="non"><span class="b">Nonconformity:&nbsp;&nbsp;<br /></span>' . $row['non'] . '</div><br /><br />';
                    echo '<div id="dis"><span class="b">Disposition:&nbsp;&nbsp;<br /></span>' . $row['dis'] . '</div><br /><br />';
                    echo '<div id="comm"><span class="b">Comments:&nbsp;&nbsp;<br /></span>' . $row['comm'] . '</div><br /><br />';
                    echo '<div id="caad"><span class="b">Comments and/or Additional Details:&nbsp;&nbsp;<br /></span>' . $row['caad'] . '</div>';
            //PO, PO Date, and Date Recieved
                echo '<div id="podrp">';
                    if (empty($row['po'])) $row['po'] ="Empty";
                    if (empty($row['pod'])) $row['pod'] ="Empty";
                    if (empty($row['dri'])) $row['dri'] ="Empty";
                        echo '<div id="pop"><span class="b">PO:&nbsp;&nbsp;</span>' . $row['po'] . '</div>';
                        echo '<div id="podp"><span class="b">PO Date:&nbsp;&nbsp;</span>' . $row['pod'] . '</div>';
                        echo '<div id="drip"><span class="b">Date Recieved:&nbsp;&nbsp;</span>' . $row['dri'] . '</div>';
                echo '</div>';
            echo '</div>';
            echo '<div id="box6p">';
                //NCMR Supplier Response & Comment if not empty
                if (empty($row['ncmrsr'])) $row['ncmrsr'] ="Empty";
                if (empty($row['ncmrsc'])) $row['ncmrsc'] ="Empty";
                    echo '<div id="ncmrsr"><span class="b">NCMR Supplier Response:</span><br />' . $row['ncmrsr'] . '</div><br /><br />';
                    echo '<div id="ncmrsc"><span class="b">NCMR Supplier Comment:</span><br />' . $row['ncmrsc'] . '</div><br /><br />';
            echo '</div>';
        echo '</fieldset>';
    echo '</div>';
echo '</form>';
}
  mysqli_close($dbc);
    echo '</div>';

     require_once('tb/pfooter.php');

?>
</body> 
</html>

Ответы [ 3 ]

1 голос
/ 09 января 2012

Это потому, что у вашего div#printwrap есть position: absolute как правило CSS. При такой позиции элемент выводится из потока документа, поэтому следующие элементы (<hr> и ваш нижний колонтитул) начинают свой поток без учета div#printwrap. Сними это position: absolute и все будет работать.

1 голос
/ 09 января 2012

Класс footer не проблема, идентификатор printwrap. Он настроен на абсолютное позиционирование, поэтому элементы с позиционированием потока (например, div для нижнего колонтитула) игнорируют его при визуализации. Так как footerhr над ним) являются первыми элементами с позиционированием потока на странице, они отображаются прямо вверху.

Просто настроить его в Firebug, удалив следующее из определения #printwrap в postie.css - это улучшение:

height: 930px;
position: absolute;

Абсолютное позиционирование и позиционирование потока не всегда хорошо сочетаются друг с другом. Нужно знать, что для этого нужно делать.

0 голосов
/ 09 января 2012

Удалить из строки 110 файла /testbed/tb/postie.css следующий код:

height: 930px;
position: absolute;
...