2017-06-17 34 views
1

我正在關注「https://www.youtube.com/watch?v=V_qZOaGSEQE」的教程。我想用jquery在phalcon中實現自動分頁。 自動滾動工作正常,沒有任何錯誤,但問題是我不明白如何通過phalcon將查詢數據傳遞給jquery。這就是爲什麼總是5個數據連續渲染並且數據相同。我的意思是總是渲染1-5一次又一次。 有人請幫我...!如何使用自動分頁功能正確檢索數據。從jquery從phalcon控制器中檢索數據

[控制器]

namespace Multiple\Frontend\Controllers; 
use Phalcon\Paginator\Adapter\Model as paginator; 

public function postloaderAction() 
{ 
    $numberPage = $this->request->getPost("page", "int",1); 
    $record_per_call = 5; 
    $offset = ($numberPage - 1) * $record_per_call; 
    $bloger = Blogs::find(array("limit" => array("number" => $record_per_call, "offset" => $offset), "order" => "datetime DESC")); 
    foreach($bloger as $blog) 
    { 
     echo('<div> <h1><a href="blog/details/'.$blog->id.'">'.$blog->blog_title.'</a></h1><img src="uploads/blogs/'.$blog->blog_image.'"/></div>'); 
    } 
} 

public function indexAction() 
{ 
    if($this->request->isAjax()) 
    { 
     echo($this->view->getRender('blog', $this->postloader())); 
     return false; 
    } 
} 

[ '主要佈局視圖/ Jquery的']

var page = 1; 
mycontent(page); 
$(window).scroll(function(){ 
    if($(window).scrollTop() + $(window).height() > $('.blogItems').height()) 
    { 
    page++; 
    mycontent(page); 
    } 
}); 
function mycontent(page) 
{ 
    $('.loader_msg').html('Loading Expansion...'); 
    $.post('blog/postloader',{page:page}, function(data){ 
     if(data.trim().length == 0) 
     { 
      $('.loader_msg').html('No Data Found'); 
     } 
     $('.blogItems').append(data); 
     // $('.animate').animate({scrollTop:$('.loading').offset().top}, 1000); 
     $('.loader_msg').hide(); 
    }); 
} 

[博客查看]

<div class="blogItems"> 
    <p class="loader_msg"></p> 
</div> 

[輸出]

enter image description here

回答

0

這僅僅是因爲每次您嘗試獲取帶有限制的數據時,每次都會給您前5條記錄,您必須給予限制以及抵消才能獲得下一個n結果,並且在Phalcon沒有直接的方法來給出限制和抵消,所以你必須以這種方式進行編碼。

<?php 
public function postloaderAction() 
{ 
    $numberPage = $this->request->getPost("page", "int",1); 
    $record_per_call = 5; 
    $offset = ($numberPage - 1) * $record_per_call; 
    $bloger = Blogs::find(array("limit" => array("number" => $record_per_call, "offset" => $offset), "order" => "datetime DESC")); 
    foreach($bloger as $blog) 
    { 
     echo('<div> <h1><a href="blog/details/'.$blog->id.'">'.$blog->blog_title.'</a></h1><img src="uploads/blogs/'.$blog->blog_image.'"/></div>'); 
    } 
} 

這一定會爲你工作。

+0

由DECS命令它只渲染5個數據而不去6,7,8等等...仍然和以前一樣!如果你看到「https://www.youtube.com/watch?v=V_qZOaGSEQE」鏈接查詢。實際上我需要像phalcon那樣的查詢。也沒有停止。 –

+0

:@Akshay Singhai - 你測試了代碼plz嗎?或者你是否觀看視頻鏈接他們如何查詢? –

+0

我試過我的db記錄代碼,那是 public function testAction() print_r(json_encode(CityList :: find(array(「limit」=> array(「number」=> 5,「offset」=「 > 5))))); $ this-> view-> disable(); }讓我檢查訂單由,並會讓你知道 –

相關問題