最新消息: 新版网站上线了!!!

Laravel AJAX 分页 (jQuery)

  1. // In JavaScript 
  2. //_______________________ 
  3.  
  4. // listener to the [select from existing photos] button 
  5. $('#photosModal').on('shown.bs.modal'function () { 
  6.     // get the first page of photos (paginated) 
  7.     getPhotos(function(photosObj){ 
  8.         displayPhotos(photosObj); 
  9.     }); 
  10. }); 
  11.  
  12. /** 
  13. * get the photos paginated, and display them in the modal of selecting from existing photos 
  14. * 
  15. * @param page 
  16. */ 
  17. function getPhotos(callback) { 
  18.  
  19.     $.ajax({ 
  20.         type: "GET"
  21.         dataType: 'json'
  22.         url: Routes.cms_photos, // this is a variable that holds my route url 
  23.         data:{ 
  24.             'page': window.current_page + 1 // you might need to init that var on top of page (= 0) 
  25.         } 
  26.     }) 
  27.         .done(function( response ) { 
  28.             var photosObj = $.parseJSON(response.photos); 
  29.             console.log(photosObj); 
  30.  
  31.             window.current_page = photosObj.current_page; 
  32.  
  33.             // hide the [load more] button when all pages are loaded 
  34.             if(window.current_page == photosObj.last_page){ 
  35.                 $('#load-more-photos').hide(); 
  36.             } 
  37.  
  38.             callback(photosObj); 
  39.         }) 
  40.         .fail(function( response ) { 
  41.             console.log( "Error: " + response ); 
  42.         }); 
  43.  
  44. /** 
  45. * @param photosObj 
  46. */ 
  47. function displayPhotos(photosObj) 
  48.     var options = ''
  49.  
  50.     $.each(photosObj.data, function(key, value){ 
  51.         options = options + "<option data-img-src='"+value.thumbnail+"' value='"+value.id+"'></option>"
  52.     }); 
  53.  
  54.     $('#photos-selector').append(options); 
  55.  
  56.     $("select").imagepicker(); 
  57.  
  58. // listener to the [load more] button 
  59. $('#load-more-photos').on('click'function(e){ 
  60.     e.preventDefault(); 
  61.  
  62.     getPhotos(function(photosObj){ 
  63.         displayPhotos(photosObj); 
  64.     }); 
  65.  
  66. }); 
  67.  
  68.  
  69.  
  70.  
  71.  
  72. // In the Controller 
  73. //_______________________ 
  74. //... 
  75. $photos = $this->photo_repo->paginate(12); 
  76.  
  77. return Response::json([ 
  78.     'status' => 'success'
  79.     'photos' => $photos->toJson(), 
  80. ]); 

 

转载请注明:谷谷点程序 » Laravel AJAX 分页 (jQuery)