我的回音结果上有分页系统但页面号码正在彼此之间回显
e.g。
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> $l </b></font></a> ";
}
else
{
echo "<center><font face='Verdana' size='4' color=#2E9AFE ><b> $l </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>";
}
答案 0 :(得分: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和表:)
答案 1 :(得分: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
将从零开始(即从零开始计算)但是+1只会改变事物,所以我们从1代替。
答案 2 :(得分: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> $l </b></font></a> ";
}
else
{
echo "<center><font face='Verdana' size='4' color=#2E9AFE ><b> $l </b></font></center>";
}
echo "</td>";
}
echo "</tr></table>";
答案 3 :(得分: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部分代码,用div:left和其他一些css调整显示在div元素中,所以现在它应该放在一行......