2016-12-21 19 views
1

私はこの問題を解決しようとしています: PHPを使用しているデータベースからは、ページにX個のすべてのセクションには上部にいくつかのコンテンツがあり、下部にはいくつかのコンテンツがあります。テーブルは、以前にデータベースにあったものに応じて、0から任意の数の行を持つことができます。 表以外のコンテンツのサイズは変わりません。可変サイズのセクションの可変量のページ区切りを動的に追加してください

テーブルのために各セクションのサイズは何か分かりません。通常は少なくとも30個のセクションがあります。

このページは印刷適性でなければならず、ページ区切りとは別にすべてが既に機能しています。

ページ間に切断することなくセクションをページに合わせるために、ページ区切りを動的に追加する方法を見つける必要があります。ここに掲載するのは実用的ではありませんので

コードは約400行であるが、断面構造は、このようなものです:

<section class="row"> 
 
<section> 
 
\t <section class="col-md-2"></section> 
 
\t <section class="col-md-8 printcenter"> 
 
\t \t <p class="docenteheader" > 
 
\t \t \t <span class="tabspaceright">NAME: <strong>name</strong></span> 
 
\t \t \t <span class="tabspaceleft">ID: <strong>number</strong></span> 
 
\t \t </p> 
 
\t \t <table> 
 
\t \t   <tr> 
 
\t \t     <th><strong>1:</strong></th> 
 
\t \t \t <th><strong>2:</strong></th> 
 
\t \t \t <th><strong>3:</strong></th> 
 
\t \t \t <th><strong>4:</strong></th> 
 
\t \t   </tr> 
 
\t \t <tr> 
 
\t \t \t <td>1</td> 
 
\t \t \t <td>2</td> 
 
\t \t \t <td>3</td> 
 
\t \t \t <td>4</td> 
 
\t \t </tr> 
 
\t \t </table> 
 
\t \t <p><strong>Something1:</strong> Something</p> 
 
\t \t <p> 
 
\t \t \t <span><strong>Something2: number</strong></span> 
 
\t \t \t <span ><strong>Something3: number</strong></span> 
 
\t \t </p> 
 
\t \t <section class="rel_endline"></section> 
 
\t </section> 
 
\t <section class="col-md-2"></section> 
 
</section>      
 
</section>

私はCSSクラスを削除し、表示を容易にする元の名前とPHPコード

+0

これはPHPまたはJSコードのいずれかによって処理される可能性が高いので、PHPコードを含めてください。 PHPで何をするのでしょうか...おそらく 'for'や' while'ループでセクションを出力するでしょうか?だから、何回ループしているのかを追跡し、他のすべてのループでページ区切りをしたい場合は、 '$ i%2 == 0'のたびにページ区切りを追加します。これは理にかなっていますか? –

+0

はい、それは意味があります、返信ありがとうございますが、セクションのサイズが変わるので、時々私は1回のループの後、時には5、3、または任意の数の後に改ページしなければならないので、助けになりません... –

+0

PHPコードはどこに置くことができますか?その非常に巨大な –

答えて

1

ここにサンプルPHPコードがあります。不明な点があれば教えてください。自己説明変数名を使用しようとしました。

<?php 

    $PAGEBREAK_LENGTH = 1000; // Add a page break every 1000 characters. 
    $lengthTracker = ''; 

    while ($row = odbc_fetch_array($res)){ 
     $lengthTracker .= $row['article']; 
     $lengthSize = strlen($lengthTracker); 

     if ($lengthSize > $PAGEBREAK_LENGTH) { 
      echo '<div class="page-break">This is a page break</div>'; 
      $lengthTracker = ''; // Reset length tracker since we just added a break 
     } 

     echo '<div class="article">'; 
     echo $row['article']; 
     echo '</div>'; 
    } 

?> 

あなたが記事をエコーする前にif ($lengthSize > $PAGEBREAK_LENGTH)が含まれている場合は、ページブレークを含む傾向があるだろう「より頻繁に。」記事がエコーされた後にifステートメントを含めると、改ページ頻度が少なくなります(したがって、テキストブロックが大きくなる可能性があります)。

お気に入りのスタイルを確認するには、両方の方法を試してください。おそらく、記事の途中で改ページを含めることはできません。

+0

答えをありがとうHC_ –

+0

私はそれがFirefoxの上で動作するようになったが、サイト全体のすべての単一のDOMが浮動小数点であっても、クロムはすべての私のセクションを半分に食べる:noneとposition: -break-inside:avoid –

+0

@RicardoMelo私はそれを手助けするためにペーストビンを見なければならないでしょう。あらかじめ高さなどを設定しているようです。 –

0

私の問題はページブレークではないことがわかりましたが、要素に負のマージンがあり、ページ区切り全体が損なわれていることがわかりました。

関連する問題