在分页控件上如何让活动类工作。 a:active的CSS样式没有显示(控件上的其他一切似乎都很好)。
分页代码:
//start pagination
//Get the total count of rows.
$sql = "SELECT COUNT(id) FROM users";
$query = mysqli_query($dbc, $sql);
$row = mysqli_fetch_row($query);
//Here we have the total row count
$rows = $row[0];
//Number of results to show per page
$page_rows = 21;
//This tells us the page number of our last page
$last = ceil($rows/$page_rows);
//This makes sure last cannot be less than 1
if($last < 1){
$last = 1;
}
//establish the $pagenum variable
$pagenum = 1;
//Get pagenum from URL vars if it is present, else it is = 1
if(isset($_GET['pn'])){
$pagenum = preg_replace('#[^0-9]#', '', $_GET['pn']);
}
//This makes sure the page number isn't below 1 or more than our $last page
if($pagenum < 1){
$pagenum = 1;
} else if($pagenum > $last) {
$pagenum = $last;
}
//This sets the range of rows to query for the chosen $pagenum
$limit = 'LIMIT ' . ($pagenum - 1) * $page_rows .',' .$page_rows;
//This is your query again, it is for grabbing just one page worth of rows by applying the limit variable
$sql = "SELECT id, image, fname, surname, address FROM users ORDER BY id DESC $limit";
$query = mysqli_query($dbc, $sql);
//This shows the user what page they are on and the total number of pages
$textline1 = "<b>$rows</b> Users";
$textline2 = "Page <b>$pagenum</b> of <b>$last</b>";
//$paginationCrls variable
$paginationCtrls = ' ';
//if there is more than 1 page worth of results
if($last != 1){
/*First we check if we are on page one. If we are then we don't need a link to the previous page or the first page so we do nothing. If we aren't then we generate links to the first page and to the previous page.*/
if($pagenum > 1){
$previous = $pagenum - 1;
$paginationCtrls .= '<a href="' . $_SERVER['PHP_SELF']. '?pn=' .$previous. '">« Previous</a> ';
//Render clickable number links that should appear on the left of the target page number
for($i = $pagenum-4; $i < $pagenum; $i++){
if($i > 0) {
$paginationCtrls .= '<a href="' .$_SERVER['PHP_SELF']. '?pn=' . $i .'">'.$i.'</a> ';
}
}
}
//Render the target page number, but without it being a link
$paginationCtrls .= ''.$pagenum.' ';
//Render clickable number links that should appear on the right of the target page number
for($i = $pagenum+1; $i <= $last; $i++){
$paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> ';
if($i >= $pagenum+4){
break;
}
}
//This adds the same as above only checking if if we are on the last page and then generating Next
if($pagenum != $last){
$next = $pagenum + 1;
$paginationCtrls .= ' <a href="'.$_SERVER['PHP_SELF'].'?pn='.$next.'">Next »</a> ';
}
}
//Finish Pagination
CSS代码:
div#pagination_controls a:active{
border: 1px solid #C00;
background-color: #C00;
color: #3f3f3f;
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;}
答案 0 :(得分:2)
您的活动页面不会呈现为链接。尝试更改这些行:
//Render the target page number, but without it being a link
$paginationCtrls .= ''.$pagenum.' ';
到
//Render the target page number, but without it being a link
$paginationCtrls .= '<span class="active">'.$pagenum.'</span> ';
和
div#pagination_controls a:active
{
border: 1px solid #C00;
background-color: #C00;
color: #3f3f3f;
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
}
到
div#pagination_controls span.active
{
border: 1px solid #C00;
background-color: #C00;
color: #3f3f3f;
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
}