2011-10-20 51 views
0

我有一個JavaScript函數,它使ajax請求到PHP控制器方法,它返回一個JSON編碼數組。分頁算法與javascript

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

我真的沒有對如何進行分頁將數據從reques返回的想法。 請指點我正確的方向

回答

1

這很容易。爲您的分頁鏈接添加一個類(您可以使用full_tag_openfull_tag_close配置變量:<p class="pagination></p>)。 之後,你可以重新定義.pagination a click事件(我使用jQuery):

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

我希望這可以幫助你。

+0

嘗試了你的建議,但它似乎沒有工作,鏈接仍然表現爲默認方式 – MrFoh

+0

什麼都不起作用? 'YourJSFunction()'運行嗎? – uzsolt