Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算分页元素并向其中添加CSS_Php_Jquery_Pagination_Counting - Fatal编程技术网

Php 计算分页元素并向其中添加CSS

Php 计算分页元素并向其中添加CSS,php,jquery,pagination,counting,Php,Jquery,Pagination,Counting,因此,我找到了一个很好的PHP分页类,并根据我的需要对其进行了调整 /*********************************************\ * Mini Paginator * * Made by Wilson Fernandez for multicoders.com* * wilsonimport@gmail.com * \***********************

因此,我找到了一个很好的PHP分页类,并根据我的需要对其进行了调整

/*********************************************\
* Mini Paginator                              *
* Made by Wilson Fernandez for multicoders.com*
* wilsonimport@gmail.com                      *
\*********************************************/
现在我想让它更具响应性,并在这里找到了一种很酷的方法->。 经过几次尝试之后,我注意到,向分页元素添加类并不像最初看起来那么简单(至少对我来说)。我试着用PHP实现它,并用jQuery寻找解决方案,但没有成功。 因此,我希望在这里能得到一些帮助。:)

原始分页输出如下所示:

<div id = "container">
    <div class = "pagination">
        <a class = "page" href = "/development/paginator/index.php?current_page=5"> Vorherige </a>
        <a class = "page" href = "/development/paginator/index.php?current_page=1">1</a>
        <span class = "dots">...</span>
        <a class = "page" href = "/development/paginator/index.php?current_page=3">3</a>
        <a class = "page" href = "/development/paginator/index.php?current_page=4">4</a>
        <a class = "page" href = "/development/paginator/index.php?current_page=5">5</a>
        <div class = "page active">6</div>
        <a class = "page" href = "/development/paginator/index.php?current_page=7">7</a>
        <a class = "page" href = "/development/paginator/index.php?current_page=8">8</a>
        <a class = "page" href = "/development/paginator/index.php?current_page=9">9</a>
        <span class = "dots">...</span>
        <a class = "page" href = "/development/paginator/index.php?current_page=214">214</a>
        <a class = "page" href = "/development/paginator/index.php?current_page=7"> Nächste </a>
        <form id = "paginationForm" enctype = "multipart/form-data" action = "" method = "get" name = "availPages">
    </div>
</div>

...
6.
...
我需要这样添加类(注意“away-n”类:


...
6.
...
简而言之,从当前页面类(活动)开始,应该在左侧(向上)和右侧(向下)添加一个“计数类”,直到类“点”,或者,如果没有点,则添加到最后一个元素(但不是下一个和上一个,最后一个元素)

我的问题是:如何做到这一点? 解决方案首选PHP,但我想使用jQuery更容易。
建议,请…

我假设您已经完成了分页布局中的查询和CSS。 这是一段简单的php代码,您可以对其中的变量进行实验

只需运行新的php文件,您就可以学习它

<style type="text/css">
    .pagination {
        display: inline-block;
    }
    .pagination *{
        display: inline-block;
        border: 1px solid #cecece;
        padding: 5px;
    }
    .active{
        background: #dedede;
    }
</style>
<?php

$count_sides_numb = 3;  // count of navigation numbers can you show in beside active page number, you can edit this.
$active_page = (!empty($_GET['current_page']) ? $_GET['current_page']:5);

$count_records = 10000; // total your records database
$recs_in_page = 25;     // total records per page
$count_pages = round($count_records/$recs_in_page,0);

$before_side_numb = $active_page-$count_sides_numb-1;
$after_side_numb = $active_page+$count_sides_numb+1;

// cek for using dot navigation.
$use_dot_btn = true;
if($after_side_numb >= $count_pages ||
    $before_side_numb <= 1) $use_dot_btn = false;

echo "<div id = \"container\">
    <div class = \"pagination\" style=\"display:inline-block;\">";

        echo ($active_page > 1 ? "<a class = \"page\" href = \"/index.php?current_page=".($active_page-1)."\">Vorherige</a>":"<div class=\"page\">Vorherige</div>");
        echo ($before_side_numb+1 > 1 ? "<a class = \"page\" href = \"/index.php?current_page=1\">1</a>":"");
        echo ($use_dot_btn ? "<span class = \"dots\">...</span>":"");

        $first = $before_side_numb+1 < 1 ? 1:$before_side_numb+1;
        for($i=$first; $i<$active_page;$i++){
            echo "<a class = \"page away-$count_sides_numb\" href = \"/index.php?current_page=$i\">$i</a>";
            $count_sides_numb -=1;
        }
        echo "<div class = \"page active away-0\">$active_page</div>";

        $last = $after_side_numb-1 > $count_pages ? $count_pages:$after_side_numb-1;
        for($i=$active_page+1; $i<=$last;$i++){
            echo "<a class = \"page away-$count_sides_numb\" href = \"/index.php?current_page=$i\">$i</a>";
            $count_sides_numb +=1;
        }

        echo ($use_dot_btn ? "<span class = \"dots\">...</span>":"");
        echo $after_side_numb-1 < $count_pages ? "<a class = \"page\" href = \"/index.php?current_page=$count_pages\">$count_pages</a>":"";
        echo $active_page < $count_pages ? "<a class = \"page\" href = \"/index.php?current_page=".($active_page+1)."\">Nächste</a>":"<div class=\"page\">Nächste</div>";

    echo "</div>
</div>";
?>

.分页{
显示:内联块;
}
.分页*{
显示:内联块;
边框:1px实心#cecece;
填充物:5px;
}
.主动{
背景:#dedede;
}

注意:修复并调整url导航。

谢谢你的建议,但我需要/想要在我提到的现有php类中实现这个“功能”。因此,从头开始构建分页这不是我的目标。这个类在这里->你的类的算法与上面的代码几乎相同,你可以在你的类中实现。只是学习,这并不困难。你真的从我提供的链接中查看了类文件吗?是的,我知道那是类(在mini_paginator1.rar中)还有几乎相同的工作流程。好的,让我稍后检查一下,然后我会再次回复。
<style type="text/css">
    .pagination {
        display: inline-block;
    }
    .pagination *{
        display: inline-block;
        border: 1px solid #cecece;
        padding: 5px;
    }
    .active{
        background: #dedede;
    }
</style>
<?php

$count_sides_numb = 3;  // count of navigation numbers can you show in beside active page number, you can edit this.
$active_page = (!empty($_GET['current_page']) ? $_GET['current_page']:5);

$count_records = 10000; // total your records database
$recs_in_page = 25;     // total records per page
$count_pages = round($count_records/$recs_in_page,0);

$before_side_numb = $active_page-$count_sides_numb-1;
$after_side_numb = $active_page+$count_sides_numb+1;

// cek for using dot navigation.
$use_dot_btn = true;
if($after_side_numb >= $count_pages ||
    $before_side_numb <= 1) $use_dot_btn = false;

echo "<div id = \"container\">
    <div class = \"pagination\" style=\"display:inline-block;\">";

        echo ($active_page > 1 ? "<a class = \"page\" href = \"/index.php?current_page=".($active_page-1)."\">Vorherige</a>":"<div class=\"page\">Vorherige</div>");
        echo ($before_side_numb+1 > 1 ? "<a class = \"page\" href = \"/index.php?current_page=1\">1</a>":"");
        echo ($use_dot_btn ? "<span class = \"dots\">...</span>":"");

        $first = $before_side_numb+1 < 1 ? 1:$before_side_numb+1;
        for($i=$first; $i<$active_page;$i++){
            echo "<a class = \"page away-$count_sides_numb\" href = \"/index.php?current_page=$i\">$i</a>";
            $count_sides_numb -=1;
        }
        echo "<div class = \"page active away-0\">$active_page</div>";

        $last = $after_side_numb-1 > $count_pages ? $count_pages:$after_side_numb-1;
        for($i=$active_page+1; $i<=$last;$i++){
            echo "<a class = \"page away-$count_sides_numb\" href = \"/index.php?current_page=$i\">$i</a>";
            $count_sides_numb +=1;
        }

        echo ($use_dot_btn ? "<span class = \"dots\">...</span>":"");
        echo $after_side_numb-1 < $count_pages ? "<a class = \"page\" href = \"/index.php?current_page=$count_pages\">$count_pages</a>":"";
        echo $active_page < $count_pages ? "<a class = \"page\" href = \"/index.php?current_page=".($active_page+1)."\">Nächste</a>":"<div class=\"page\">Nächste</div>";

    echo "</div>
</div>";
?>