如何获取当前页面和页面结果?

时间:2018-04-20 13:23:15

标签: php pagination

这是我的分页代码:

<?php
  public function getLinks()
  {
    $links = array();

    if (($this->pages) > 1) {
      for ($j = 1; $j < ($this->pages + 1); $j++) {
        if ($this->page == $j) {
          $links['active' => "$j"];
        } else {
          $links['pages_tag' => "$j"];
        }
      }
      return $links;
    }
  }

我想使用数组来设置当前页面:

<?php
$pageResult = $pagination->getLinks();

foreach ($pageResult as $class => $page) {
echo "<a class="$class">$page</a>";
}

$class中的foreach

$links['class'], and $page is $links['class' => '$j']

谁知道怎么做?

2 个答案:

答案 0 :(得分:0)

我认为您犯了一个错误:如果您想在所有网页中附加数组,则需要更改if函数中的getLinks验证,如下所示:

if ($this->page == $j) {
    $links['active'] = $j;
} else {
    $links['pages_tag'] = $j;
}

以上将是这样的结果:

Array(
    'active' => 1,
    'pages_tag' => 2,
    'pages_tag' => 3,
    //. . . some more positions
);

实际上,$links循环中的每个if正在覆盖for数组,导致数组末尾只有一个元素。

答案 1 :(得分:-1)

由于每个链接都必须有一个类(active或pages_tag)和页面索引,在这种情况下变量$ j,可能代码应该是这样的:

    public function getLinks()
    {
        $links = array();

        for ($j = 1; $j < ($this->pages + 1); $j++) {
            if ($this->page == $j) {
                $links[] = ['class' => 'active', 'page' => "$j"];
            } else {
                $links[] = ['class' => 'pages_tag', 'page' => "$j"];
            }
        }
        return $links;
    }

所以当你做一个foreach时,你将通过每次链接获取每个链接来遍历数组,一旦我们知道每个链接都有一个类和一个页面索引,我们就可以用这个代码回显链接:

    $pageResult = $pagination->getLinks();

    foreach ($pageResult as $link) {
        $class = $link['class'];
        $page = $link['page'];
        echo "<a class="$class">$page</a>";
    }