【问题标题】:pagination in css/phpcss/php 中的分页
【发布时间】:2010-05-07 21:32:55
【问题描述】:

两个问题:

--1-- 显示所有页数。但我希望它显示为:

>

--2-- 当我将鼠标悬停在当前页面编号上时,它应该改变颜色或增加字体大小,但是当我修改 a:hover 的 css 时,所有页面编号都会改变颜色或大小而不是我指的是一个。此外,当修改 a:active 时,什么也没有发生。

这是我在 php 中的分页代码:

 $self = $_SERVER['PHP_SELF'];
            $limit = 2; //Number of results per page
            $numpages=ceil($totalrows/$limit);

            $query = $query." ORDER BY idQuotes LIMIT " . ($page-1)*$limit . ",$limit";
            $result = mysql_query($query, $conn)
             or die('Error:' .mysql_error());
?>

<div class="caption">Search Results</div>
<div class="center_div">
<table>
    <?php while ($row= mysql_fetch_array($result, MYSQL_ASSOC)) {
        $cQuote =  highlightWords(htmlspecialchars($row['cQuotes']), $search_result);
        ?>
        <tr>
        <td style="text-align:right; font-size:15px;"><?php h($row['cArabic']); ?></td>
            <td style="font-size:16px;"><?php echo $cQuote; ?></td>
            <td style="font-size:12px;"><?php h($row['vAuthor']); ?></td>
            <td style="font-size:12px; font-style:italic; text-align:right;"><?php h($row['vReference']); ?></td>
        </tr>
    <?php } ?>
</table>
</div>

<div class="searchmain">
<?php
   //Create and print the Navigation bar
       $nav="";
       $next = $page+1;
       $prev = $page-1;
       if($page > 1) {
            $nav .= "<span class=\"searchpage\"><a onclick=\"showPage('','$prev'); return false;\" href=\"$self?page=" . $prev . "&q=" .urlencode($search_result) . "\">< Prev</a></span>";

            $first = "<span class=\"searchpage\"><a onclick=\"showPage('','1'); return false;\" href=\"$self?page=1&q=" .urlencode($search_result) . "\"> << </a></span>" ;
        }

        else {
            $nav .= "&nbsp;";
            $first = "&nbsp;";
        }

       for($i = 1 ; $i <= $numpages ; $i++) {
            if($i == $page) {
                $nav .= "<span class=\"searchpage\">$i</span>";
            }else{
                $nav .= "<span class=\"searchpage\"><a onclick=\"showPage('',$i); return false;\" href=\"$self?page=" . $i . "&q=" .urlencode($search_result) . "\">$i</a></span>";
            }
        }

        if($page < $numpages) {
            $nav .= "<span class=\"searchpage\"><a onclick=\"showPage('','$next'); return false;\" href=\"$self?page=" . $next . "&q=" .urlencode($search_result) . "\">Next ></a></span>";

            $last = "<span class=\"searchpage\"><a onclick=\"showPage('','$numpages'); return false;\" href=\"$self?page=$numpages&q=" .urlencode($search_result) . "\"> >> </a></span>";
        }

        else {

             $nav .= "&nbsp;";
             $last = "&nbsp;";
        }


        echo  $first . $nav . $last;
?>

</div>

这是它目前的显示方式:

alt text http://img714.imageshack.us/img714/7184/pag1l.jpg

css:

.searchmain {
    margin:30px;
    text-align: center;
}
.searchpage {
   border: solid 1px #ddd;
   background: #fff;
   text-align:left;
   font-size: 16px;
   padding:9px 12px;
   color: #FEBE33;
   margin-left:2px;
}

.searchpage a{
    text-decoration: none;
    color: #808080;
}

.searchpage a:hover {
    color: #FEBE33;
    border-color: #036;
    text-decoration: none;
}

.searchpage a:visited {
    color: #808080;
}

【问题讨论】:

  • 您好,您可以在rentacoder 雇用人员来完成您的工作,也可以在本网站遇到特定问题时提出特定问题。
  • 网上有这样的工作示例吗?通过一个工作示例来剖析,解决问题要容易 100 倍......
  • @Ben,抱歉我编辑了帖子。 @Erik,这些是具体问题。请阅读我的问题。
  • @Tim,这个项目还没有上线。
  • www.jsfiddle.net

标签: php html css search paging


【解决方案1】:

第一个程序的解决方案似乎很简单;您知道要显示的周围链接的数量,因此您可以简单地从current_page - surrounding_links 循环到current_page + surrounding_links。为开始、结束和何时显示点添加一些条件,就完成了。

对于 css;我不完全确定你想要实现什么,但我认为你可以通过使用a 标签来解决它,周围的spans 似乎是多余的,你只需要它们用于不是链接的项目(.no_link in下面的例子):

a, .no_link {
    float: left;
    display: block;
    padding:9px 12px;
    border: solid 1px #ddd;
    background: #fff;
    text-align:left;
    font-size: 16px;
}
a {
    color: #808080;
}
a:hover {
    color: #FEBE33;
    border-color: #036;
}
.no_link {
    color: #FEBE33;
}

【讨论】:

  • 非常感谢!我使用 span 的原因是因为我在同一页面上有其他表单,我不希望他们的 css 相互覆盖。
【解决方案2】:

1.更改此 CSS 的内边距和边框属性:

.searchpage {
   border: none;
   background: #fff;
   text-align:left;
   font-size: 16px;
   padding:3px;
   color: #FEBE33;
   margin-left:2px;
}

并在 $i 周围添加方括号的代码。

for($i = 1 ; $i <= $numpages ; $i++) {
            if($i == $page) {
                $nav .= "<span class=\"searchpage\">&#91;$i&#93;</span>";

这应该会改变你的数字的视觉效果,我没有测试过它,因为你没有实时网站,但它应该可以工作。

2. 代替.searchpage a:hover 试试searchmain a:hover

这些都没有经过测试,但我最好在查看您的代码后提出。希望它至少可以帮助您指出正确的方向:)

【讨论】:

  • 凯尔,感谢您的回复。赞赏。 :) 但是,您误解了我的第一个问题。也许,我还不清楚(对不起!)。我的意思是,由于分页显示了从 1 到 8 的所有页数,我希望它在当前页面的两侧仅显示 2。 IE。如果在第 5 页,则应在左侧显示 3,4,在右侧显示 6,7;而不是显示所有页码。我为问题的第二部分发布了 css - 我尝试了您的第二个解决方案,但没有奏效。
  • 啊哈,我的错。好吧,我会试着看看如何制作你想要的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多