我在回显结果上有分页系统,但是页码在彼此之间回显

例如

                              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>";
  }

最佳答案

这是执行上述操作的另一种方法,并增加了一些额外功能:

$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将基于零(即从零开始计数),但是+1只是移动了东西,因此我们从1开始计数。

关于php - PHP的 echo 页码在同一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12753708/

10-10 14:37