我正在关注“https://www.youtube.com/watch?v=V_qZOaGSEQE”的教程。我想用phaqucon在jquery中实现自动分页。 自动滚动工作正常没有任何错误,但问题是我不明白如何使用phalcon将查询数据传递给jquery。 这就是为什么总是5个数据连续渲染和相同的数据。我的意思是总是一次又一次地渲染1-5。 有人请帮助我...... 如何使用自动分页功能正确检索数据。
[控制器]
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;
}
}
['Main Layout View / 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>
[输出]
答案 0 :(得分: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>');
}
}
这肯定会对你有用。