doumeng2637 2016-12-28 09:28
浏览 399
已采纳

php分页下一页上一页

I want to add next prev function to all my pages.

Right now: Prev works fine, next goes like this 0=>1=>2=>3=>4=>5=>6=>0=>1....

PS: I don't want to display page 0. I would like to start at page 1.

$productArr = ["ac" => ["001" => ["dimension"=>"H: 85 W: 67 D: 72",  "price"=>850.00 , "images"=>7], 
                    "002" => ["dimension"=>"H: -- W: -- D: --",  "price"=>860.00 , "images"=>7], 
                    "003" => ["dimension"=>"H: 95 W: 71 D: 90",  "price"=>890.00 , "images"=>7], 
                    "004" => ["dimension"=>"H: 78 W: 68 D: 78",  "price"=>740.00 , "images"=>4], 
                    "005" => ["dimension"=>"H: 102 W: 69 D: 90", "price"=>890.00 , "images"=>7], 
                    "006" => ["dimension"=>"H: 89 W: 80 D: 86",  "price"=>1280.00, "images"=>7], 
                    "007" => ["dimension"=>"H: 78 W: 66 D: 66",  "price"=>680.00 , "images"=>7], 
                    "008" => ["dimension"=>"H: 80 W: 78 D: 74",  "price"=>800.00 , "images"=>7], 
                    "009" => ["dimension"=>"H: 94 W: 64 D: 88",  "price"=>790.00 , "images"=>5], 
                    "010" => ["dimension"=>"H: 83 W: 68 D: 72",  "price"=>850.00 , "images"=>7], 
                    "011" => ["dimension"=>"H: 70 W: 66 D: 77",  "price"=>860.00 , "images"=>7], 
                    "012" => ["dimension"=>"H: 88 W: 84 D: 88",  "price"=>1280.00, "images"=>7], 
                    "013" => ["dimension"=>"H: 80 W: 70 D: 84",  "price"=>860.00 , "images"=>7], 
                    "014" => ["dimension"=>"H: 82 W: 68 D: 80",  "price"=>780.00 , "images"=>7], 
                    "015" => ["dimension"=>"H: 82 W: 72 D: 78",  "price"=>890.00 , "images"=>7], 
                    "016" => ["dimension"=>"H: 75 W: 59 D: 47",  "price"=>780.00 , "images"=>7], 
                    "017" => ["dimension"=>"H: 90 W: 77 D: 83",  "price"=>1280.00, "images"=>7], 
                    "018" => ["dimension"=>"H: -- W: -- D: --",  "price"=>680.00 , "images"=>5], 
                    "020" => ["dimension"=>"H: 74 W: 63 D: 89",  "price"=>860.00 , "images"=>4]]];

 $catCode = isset($_GET["cat"]) ? $_GET["cat"] : "ac";
 $page = isset($_GET["page"]) ? $_GET["page"] : 1;

foreach ($productArr[$catCode] as $imgNumber => $productDetail) {
        array_push($arr, $imgNumber);
        $imgNumber = $arr;
        // index[18] change to 20
    }
     $total = count($arr);
        // limit the number of images shown
        $limit = 3;
        //calculate the total number of pages
        $totalPages = ceil($total / $limit);
  $nextPage = ($page + 1) %  $totalPages ;
  $prevPage = ($page == 1) ? $totalPages : $page - 1;

 echo"<a href='http://localhost/collectionPage.php?cat=$catCode&page={$prevPage}' ><img class='img-responsive pull-left' src='images/arrow_left.jpg'> </a>";
 echo"<a href='http://localhost/collectionPage.php?cat=$catCode&page={$nextPage}' ><img class='img-responsive pull-right' src='images/arrow_right.jpg'> </a>";
  • 写回答

3条回答 默认 最新

  • douyan1944 2016-12-28 11:35
    关注

    You can do it either this way (more readable):

    $prevPage = ($page == 1) ? $totalPages : $page - 1;
    $nextPage = ($page == $totalPages) ? 1 : $page + 1;
    

    or this way:

    $prevPage = ($page + $totalPages - 2) % $totalPages + 1;
    $nextPage = $page % $totalPages + 1;
    

    Previous page is more tricky because remainder starts counting the other way for negative values (-2, -1, 0, 1, 2...) - hence + $totalPages

    I'd also suggest adding a condition that checks if current page is within limit - user might send anything.

    $page = isset($_GET["page"]) ? intval($_GET["page"]) : 1;
    if ($page > $totalPages || $page < 1) { $page = 1; }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入