2016-08-11 13 views
0

単純なloadmore関数を使用しました。これはクエリの制限を設定し、オフセットを加算して新しい項目のみを再度読み込むようにします。これは、最初から4個の項目があるときにはうまく動作しますが、最初から8個を表示したいときはうまく動作しません。Ajax loadmore関数が必要な機能を果たさない

マイコード:

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つの項目を示しているが、ロード時より、それは再び最初の8つの項目の(最後の4つの2行を示しています)。これは意味があります。これは、ボタンをクリックすると制限が再び4に設定されているためです(8個に変更すると、最初の8個のアイテムをロードするだけで4個の新しいアイテムが必要になります)ので、毎回8個のアイテムがロードされます。私が望むものではありません。

どうすればこの問題を解決できますか?

答えて

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(); 

});