CakePHP使用ajax分页加载更多结果

时间:2014-05-05 15:17:22

标签: php jquery ajax cakephp

我正在追随一个人,但我仍然坚持这个部分:

视图:

<?php if (!$isAjax):?>
<script type="text/javascript">
var lastX = 0;
var currentX = 0;
var page = 1;
$(window).scroll(function () {
currentX = $(window).scrollTop();
if (currentX - lastX > 200 * page) {
lastX = currentX;
page++;
$.get('<?php echo $this->base."/products/index/page:"; ?>' + page, function(data) {
$('#prod-list').append(data);
});
}
});
</script>
<?php endif;?>

控制器:

var $components = array('RequestHandler');

public function index($page) {
$limit = 8; 
$data = $this->Products->list_products($page, $limit);
$this->set('products',$data); 
$this->set('isAjax', $this->RequestHandler->isAjax());}

然后模型检索一些数据。 问题是在视图中,正在将完整的html页面附加到prod-list而不是新结果。我怎样才能修复&#34;是什么?

我已经在某处读过我可能需要一个新视图来获取结果并通过ajax获取它。这对我来说很困惑。

1 个答案:

答案 0 :(得分:0)

编辑:尊重AD7six说明,我已经从$ this更改了一段代码 - &gt; layout = false;到$ this - &gt; layout =&#39; ajax&#39;;。

您需要使用ajax布局。

if ($this->request->is('ajax')) {
        $this->disableCache(); 
        $this->layout = 'ajax';
        $this->render('your_view_file');
    }