Advertisement
Guest User

Infinite scroll codeigniter

a guest
Oct 15th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1.  
  2.  
  3. // Controller
  4. <?php
  5. defined('BASEPATH') OR exit('No direct script access allowed');
  6.  
  7. class AjaxController extends CI_Controller {
  8. private $perPage = 12;
  9.  
  10. public function index(){
  11. $count = $this->db->get('pets')->num_rows();
  12. if(!empty($this->input->get("page"))){
  13. $start = ceil($this->input->get("page") * $this->perPage);
  14.  
  15. $query = $this->db->limit($start, $this->perPage)->get("pets");
  16.  
  17. $data['pets'] = $query->result();
  18. $result = $this->load->view('pets/entries', $data);
  19.  
  20. echo json_encode($result);
  21. } else {
  22. $query = $this->db->limit($this->perPage)->get("pets");
  23. $data['pets'] = $query->result();
  24.  
  25. $this->load->view('myPost', $data);
  26. }
  27. }
  28. }
  29.  
  30. //View file
  31.  
  32. <?php foreach($pets as $pet){ ?>
  33. <div class="col-md-12">
  34. <h3><a href=""><?php echo $pet->pet_entry_title ?></a></h3>
  35. <p><?php echo $pet->pet_descr ?></p>
  36. <div class="text-right">
  37. <button class="btn btn-success">Read More</button>
  38. </div>
  39. <hr style="margin-top:5px;">
  40. </div>
  41. <?php } ?>
  42.  
  43.  
  44. // Javascript
  45. <script type="text/javascript">
  46. var page = 1;
  47. $(window).scroll(function() {
  48. var scrollTop = $(document).scrollTop();
  49. var windowHeight = $(window).height();
  50. var bodyHeight = $(document).height() - windowHeight;
  51. var scrollPercentage = (scrollTop / bodyHeight);
  52.  
  53. // if the scroll is more than 90% from the top, load more content.
  54. if(scrollPercentage > 0.9) {
  55. page++;
  56. loadMoreData(page);
  57. }
  58. });
  59.  
  60.  
  61. function loadMoreData(page){
  62. $.ajax({
  63. url: '?page=' + page,
  64. type: "get",
  65. beforeSend: function(){
  66. $('.ajax-load').show();
  67. }
  68. })
  69. .done(function(data){
  70. if(data == ""){
  71. $('.ajax-load').html("No more records found");
  72. return false;
  73. } else {
  74. $('.ajax-load').hide();
  75. $("#post-data").append(data);
  76. }
  77. })
  78. .fail(function(jqXHR, ajaxOptions, thrownError){
  79. alert('server not responding...');
  80. });
  81. }
  82. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement