Cần giải thích giúp đoạn code phân trang Codeigniter kết hợp với AJAX

Như tiêu đề mình đang học cách kết hợp Codeigniter với AJAX trong phân trang, mình search trên mạng có 1 bài hướng dẫn nhưng tìm hiểu mãi vẫn không thông được nên nhờ mọi người giúp đỡ. Code mình lấy ở trang này: http://www.tutsway.com/ajax-pagination-in-codeigniter.php

<script type="text/javascript">
    $(function() {
      applyPagination();
      function applyPagination() {
        $("#ajax_pagingsearc a").click(function() {
        var url = $(this).attr("href");

          $.ajax({
            type: "POST",
            data: "ajax=1",
            url: url,
           success: function(msg) {

              $("#ajaxdata").html(msg);
              applyPagination();//mình không hiểu ở đây gọi lại hàm applyPagination() để làm gì?

            }
          });
        return false;
        });
      }
    });
</script>

Mình không hiểu rõ trong success: function(msg) lại gọi lại hàm applyPagination() để làm gì???

1 Like
  function applyPagination() {
    $("#ajax_pagingsearc a").click(function() {
    var url = $(this).attr("href");

      $.ajax({
        type: "POST",
        data: "ajax=1",
        url: url,
       success: function(msg) {
        
          $("#ajaxdata").html(msg);
          applyPagination();
        }
      });
    return false;
    });
  }

ủa vậy nghĩa là sao??? :crying_cat_face:

Mỗi lần ajax ra DOM, hàm click không thể nhận event bind vào trước đó nên bạn không thể gọi tiếp phân trang trong DOM được get ra. Để xử lý thì có cách như trên hoặc $(document).on(‘click’)

    $(document).on("click",function(){
  $("#ajax_pagingsearc a").click(function() {
     var url = $(this).attr("href");
     $.ajax({
              url: url,
              type: "POST",
              dateType:"text",
              data: {
                ajax:"1",
              },
              async:false,
             success: function(msg) {
                $("#ajaxdata").html(msg);
              },
            });
     return false;
  }
});

sửa lại như code ở trên hã bạn. Nếu như vậy thì mình nó vẫn load trang

@GaCongNghiep bạn sửa lại đoạn code như thế này

$document.on(“click”,"#ajax_pagingsearc a",function() {
var url = $(this).attr(“href”);
$.ajax({
type: “POST”,
data: “ajax=1”,
url: url,
success: function(msg) {

      $("#ajaxdata").html(msg);
    }
  });
return false;

})

sử dụng hàm $(document).on() khỏi phải gọi đệ qui như trên (gọi đệ qui như trên là để gọi lại sự kiện click)

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?