0

私はエコー結果にページネーションシステムを持っていますが、ページ番号はお互いの下にエコーされています

例えば

                              1
                2 3 4 5

これは私のコードです:

for($i=0;$i < $count1;$i=$i+$limit)
 {
if($i <> $start)
{       
    echo "<a href='view.php?search=$search&start=$i&limit=$limit&price=$price&category=$category'><font face='Verdana' size='2'><b>&nbsp;$l&nbsp;</b></font></a> ";
}
else
{
    echo "<center><font face='Verdana' size='4' color=#2E9AFE ><b>&nbsp;$l&nbsp;</b></font></center>";
}        

変更されたコード:

$i=0;
 $l=1;
   echo "<p align='left'>";
   for($i=0;$i < $count1;$i=$i+$limit)
   {
  if($i <> $start)
   {        
   echo '<a href="view.php?   search=$search&start=$i&limit=$limit&price=$price&category=$category">$i</a>';
}
else
{
   echo '<span class="current">$i</span>';
}        
$l=$l+1;
  }
 echo "</p>";
  }
4

4 に答える 4

3
<?php for($i=0;$i < $count1;$i=$i+$limit): ?>

  <?php if($i <> $start): ?>

 <a href="view.php?search=<?php echo $search;?>&start=<?php echo $i;?>&limit=<?php echo $limit;?>&price=<?php echo $price;?>&category=<?php echo $category;?>">
 <?php echo $i; ?></a>

  <?php else: ?>

  <span class="current"><?php echo $i;?></span>

  <?php endif; ?>
<?php endfor; ?>

CSS:

a,span.current{font-weight:bold;font-family:Verdana;}

すべてインライン要素なので、インラインのままです。パディング、テキスト装飾、色などを CSS に追加します。あなたの意図がより明確であれば、私はあなたが望むものを正確に達成するのを助けることができます (中央?)。古いhtmlとテーブルから離れてください:)

于 2012-10-05T20:48:39.603 に答える
1

上記を行う別の方法を次に示します。いくつかの追加機能があります。

$count1 = 10;    
$menu = '';

$link = array(
  'search' => ( isset($search) ? $search : $search = '' ),
  'start' => ( isset($start) ? $start : $start = 0 ),
  'limit' => ( isset($limit) ? $limit : $limit = 1 ),
  'price' => ( isset($price) ? $price : $price = '' ),
  'category' => ( isset($category) ? $category : $category = '' ),
);

foreach( range(0, $count1, $limit) as $i ) {
  $menu .= ( ($link['start'] = $i) == $start ? 
    '<span class="current">'.$i.'</span>' :
    '<a href="view.php?'.http_build_query($link).'">'.$i.'</a>'
  ) . PHP_EOL;
}

echo $menu;

(上記にはphp5+が必要です)

neeko のコメントに関して$start、リンクに表示されているテキストから変数を分離するには、ループごとにカウントアップする別の変数を導入するだけです。または、範囲配列のキーが既にあるため、次のことができます。それを使用します:

foreach( range(0, $count1, $limit) as $key => $i ) {
  $menu .= ( ($link['start'] = $i) == $start ? 
    '<span class="current">Page'.($key+1).'</span>' :
    '<a href="view.php?'.http_build_query($link).'">Page'.($key+1).'</a>'
  ) . PHP_EOL;
}

を使用しましたが$key + 1、これ$keyは 0 ベース(つまり、ゼロからカウントアップ)になるためですが、+1 は物事をシフトするだけなので、代わりに 1 からカウントアップします。

于 2012-10-05T21:33:38.977 に答える
0

センターがブロック要素であるため、他の数値とインライン化されないためだと思います(ただし、それは私の専門ではないため、間違っている可能性があります。表に入れることができます。

echo "<table><tr>";

for($i=0;$i < $count1;$i=$i+$limit)
{
    echo "<td>";
    if($i <> $start)
    {       
        echo "<a href='view.php?search=$search&start=$i&limit=$limit&price=$price&category=$category'><font face='Verdana' size='2'><b>&nbsp;$l&nbsp;</b></font></a> ";
    }
    else
    {
        echo "<center><font face='Verdana' size='4' color=#2E9AFE ><b>&nbsp;$l&nbsp;</b></font></center>";
    }
    echo "</td>";
}
echo "</tr></table>";
于 2012-10-05T20:43:07.023 に答える
0

これを試して:

for($i=0;$i < $count1;$i=$i+$limit)
{
if($i <> $start)
{       
    echo "<a href='view.php?search=$search&start=$i&limit=$limit&price=$price&category=$category'><div style='font-family: verdana; font-size: 12px; font-weight: bold; float: left; position: relative; padding: 5px; margin-right: 5px;'>$l</div></a>";
}
else
{
    echo "<div style='font-family: verdana; font-size: 14px; font-weight: bold; float: left; position: relative; color: #2E9AFE; padding: 5px; margin-right: 5px;'>$l</div>";
}   

コードの html 部分を変更して、float: left およびその他の css 調整を使用して div 要素に表示するようにしたので、1 行に配置する必要があります...

于 2012-10-05T20:44:39.053 に答える