用javascript进行分页算法

时间:2011-10-20 09:57:50

标签: php javascript codeigniter

我有一个javascript函数,它向php控制器方法发出ajax请求,返回一个JSON编码数组。

function initGallery(offset) {
        if(offset === undefined)
        {
        var request_url = url+'avatar/gallery';
        } else {
        var request_url = url+'avatar/gallery/'+offset;
        }
        $('#avatar_gallery').html('')
        $.get(request_url,function(data) {
            var dat = jQuery.parseJSON(data);
            //Build gallery
            $('#avatar_gallery').html('<div class="gallery_box"></div>');
            $('.gallery_box').append('<div class="gallery_header">Your Avatar Gallery</div>');
            $('.gallery_box').append('<div class="gallery_container"></div>');
            $.each(dat.avatars,function(index,item)
            {
                $('.gallery_container').append(
                    '<div class="gallery_item">'+
                    '<img src="'+item.avatar_src+'" id="'+item.avatar_id+'" onclick="avatar.view_avatar(this.id)"/>'+
                    '</div>'
                );
            });
                $('.gallery_box').append('<div class="gallery_footer"></div>');
                $('.gallery_footer').html('<div class="gallery_pagination"><div>');
        });
    }

这是我的控制器方法

function gallery($offset= 0)
    {
        $limit = 12;
        $user_id = $this->session->userdata('user_id');
        $data = $this->avatar_model->user_avatars($user_id,$limit,$offset);
        $avatars = array();
        $count = $this->avatar_model->count_user_avatars($user_id);
        $pages = ceil($count/$limit);

        foreach($data as $key => $avatar)
        {
            $dat['avatar_id'] = $avatar->avatar_id;
            $dat['avatar_src'] = $avatar->avatar_small;
            $dat['create_date'] = time("d-m-Y",$avatar->create_date);
            $avatars[] = $dat;
        }

        $server_response['avatar_count'] = $count;
        $server_response['avatars'] = $avatars;

        echo json_encode($server_response);
    }

我真的不知道如何对请求返回的数据进行分页。 请指出我正确的方向

1 个答案:

答案 0 :(得分:1)

这很容易。在您的分页链接中添加一个类(您可以使用full_tag_openfull_tag_close配置变量:<p class="pagination></p>)。 之后,您可以重新定义.pagination a点击事件(我正在使用JQuery):

function () {
    $(".pagination a").click(function(event){
        event.preventDefault();
        YourJSFunction($(this).attr("href"));
    });
}

我希望这会对你有所帮助。