【问题标题】:Get URL of Paginator next and previous CakePHP 2获取下一个和上一个 CakePHP 2 分页器的 URL
【发布时间】:2018-08-14 21:56:47
【问题描述】:

我在 CakePHP 2 上使用分页器。我已经将分页器从控制器发送到视图。如果我调试分页器的 next 和 prev 方法,这就是我得到的:

debug($this->Paginator->next(null, null, array('class' => 'disabled')));
'<span class="next"><a href="/Project/Controller/method/127151/page:2" rel="next"></a></span>'

我需要在同一页面中的框架上进行分页,因此当用户单击下一页或上一页时,并非所有页面都刷新,只是我用来显示数据的框架。我将使用 Jquery 的 $.post 方法执行此操作,但我需要 prev 和 next 在 href 中显示的 URL,而不是所有 span 和其他元素,例如 $this->Html->url提供

有人知道如何从分页器的上一个和下一个方法中检索 URL?

【问题讨论】:

    标签: cakephp pagination


    【解决方案1】:

    你可以试试这个方法

    $nextPage=$this->params->paging['MODELNAME']['nextPage']; // for users table MODELNAME User 
    '<span class="next"><a href="/Project/Controller/method/127151/page:'.$nextPage.'" rel="next"></a></span>'
    

    【讨论】:

      【解决方案2】:

      我找到了一种使用 PHP 的 DOM 方法解决此问题的方法:

          $htmlNext = $this->Paginator->next(null, null, array('class' => 'disabled')); //gets paginator next HTML tag
          $domNext = new DOMDocument();
          $domNext->loadHTML($htmlNext);
          $tagsNext = $domNext->getElementsByTagName('a');
          $theLinkNext = "";
          foreach ($tagsNext as $tag) 
          {
              $theLinkNext = $tag->getAttribute('href');
          }
      

      现在在 $theLinkNext 变量上你有下一页的 URL,然后你只需调用 Jquery 的 $.post 并使用 URL 来获取数据:

      var loadNotesPage = "<?php echo $theLinkNext ?>";
      $.post(loadNotesPage, function (data) {
          $('#loading-notes').html(data);
      });
      

      【讨论】:

        【解决方案3】:

        $this-&gt;Paginator-&gt;url() 默认情况下返回完整的分页 URL 字符串以用于非标准上下文(即 JavaScript)。你可以查看 cakephp 2.x 文档here 我希望这对某人有所帮助

        【讨论】:

          猜你喜欢
          • 2012-03-15
          • 1970-01-01
          • 1970-01-01
          • 2013-10-23
          • 1970-01-01
          • 1970-01-01
          • 2018-10-15
          • 2014-06-05
          • 2015-02-12
          相关资源
          最近更新 更多