分页逻辑显示错误的页码

时间:2015-03-27 00:45:52

标签: javascript

我一直在努力解决这个问题,似乎无法解决这个问题 我有点不确定是什么问题 - 我最初没有写过代码。

下面的代码是为了显示每页20个结果 - 这是正常的。 然而,总有一个额外的页码超过那里 应该。因此,如果应该有页码1到5 - 有页码 一到六,第六页没有结果。如果有的话,它可以正常工作 少于20个结果 - 只是在出现问题的多个页面时。

以下是代码:

<script>
var js_array = <?php print json_encode($array);?> ;
//alert(1);
//alert(js_array[0]);
for (i=0; i<20; i++)
{
    //alert(js_array[i]);
    $('#canvas').append(js_array[i]);
}


var end = document.createElement('div');
end.innerHTML = '<b><?php echo $pagewords; ?></b> ';
//alert(js_array.length/15);
var pages = Math.min(Math.round(js_array.length/15), 10);
for (i=1; i<pages; i++)
{   
    var span = document.createElement('span');
    $(span).attr('id', 'span');
    $(span).css('cursor','pointer');
    span.innerHTML = i;
    $(end).append(span);
    $(end).append('  ');

}
$(end).addClass("<?php echo $pageclass; ?>");
$('#main').append(end);

$('span').click(function(){
    //alert($(this).html());
    var page = $(this).html();
    //alert(page);
    $('#canvas').empty();
    if (page==0)
    {
        for (i=0; i<20; i++)
        {
            //alert(js_array[i]);
            $('#canvas').append(js_array[i]);
        }
    }
    else
    {
        for (i=page*20-20; i<page*20; i++)
        {
            //alert(js_array[i]);
            $('#canvas').append(js_array[i]);
        }
    }


});

任何人都可以看到上述逻辑的问题。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

从代码中的这一行开始,您可以根据每页15个结果来计算您的分页

var pages = Math.min(Math.round(js_array.length/15), 10);

答案 1 :(得分:0)

你必须围捕:

var pages = Math.ceil(js_array.length/20);
如果你有&lt;

这将给你至少1页20项。

Math.min将强制最多10页。也许你想保留它,但是对于页数,只需使用ceil。