使用jquery从phalcon控制器检索数据

时间:2017-06-17 17:30:24

标签: javascript php jquery mysql phalcon

我正在关注“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>

[输出]

enter image description here

1 个答案:

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

这肯定会对你有用。