2016-07-14 10 views
1

Ich benutze Paginator auf CakePHP 2. Ich habe bereits den Paginator vom Controller zur Ansicht gesendet. Wenn ich die nächsten und zurück Methoden der paginator debuggen ist es das, was ich bekomme:Get URL von Paginator nächste und vorherige CakePHP 2

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

Ich brauche die Paginierung auf einem Rahmen in der gleichen Seite zu tun, also wenn der Benutzer klicken nächste oder vorherige Seite, nicht alle die Seitenaktualisierung, nur der Rahmen, den ich verwende, um die Daten anzuzeigen. Ich werde das mit der $ .post-Methode von Jquery tun, aber ich brauche die URL, die die vorherige und nächste in der href zeigen, nicht die ganze Spanne und die anderen Elemente, etwa $ this-> Html-> url bietet .

Jemand weiß, wie kann ich die URL von den vorherigen und nächsten Methoden des Paginators abrufen?

Antwort

0

fand ich einen Weg, dies zu erhalten, beschlossen, die DOM-Methoden von PHP:

$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'); 
    } 

nun auf die $ theLinkNext Variable Sie die URL für die nächste Seite, dann $ .post von Jquery rufen Sie einfach und verwenden Sie die URL, um die Daten zu erhalten:

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