Ajax loadmore函数没有做我需要的

时间:2016-08-11 13:48:12

标签: javascript php jquery ajax

我有一个简单的loadmore函数,它设置查询的限制并添加到偏移量,因此只会再次加载新项目。当我有4个项目开始时,这样可以正常工作,但是当我想从头开始显示8个时,这个工作正常。

我的代码:

var limit = 8;
var offset = 0;

$('#loadmoreprojects').click(function() {
    limit = 4;
    offset += 4;

    ajax();

});

查询:

$project                = "
SELECT ct.*, fe.*, cn.*
FROM 123_content ct
INNER JOIN 123_fieldsandfilters_elements fe on fe.item_id = ct.id
INNER JOIN 123_fieldsandfilters_connections cn on cn.element_id = fe.id
WHERE ct.catid IN ('10')
ORDER BY ct.ordering LIMIT ".$_POST['limit']." OFFSET ".$_POST['offset']."";

这从开始时显示8个项目,但是当加载更多时,它再次显示第2行(前8个项目中的最后4个)。这是有道理的,因为当点击按钮时限制再次设置为4(因为在第一个8之后,我只想要加载4个新项目)如果我将其更改为8,那么每次点击都会加载8个项目,这是不是我想要的。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

解决方案:

var limit = 4;
var offset = 0;
var i =0;
$('#loadmorenews').click(function() {
    limit = 2;
    if(i == 0) {
        offset += 4;
    } else {
        offset += 2;
    }
    i++;

    ajax();

});