30/09/2018, 18:12

Có một đoạn code phân trang Codeigniter kết hợp với AJAX mà mình không hiểu các bạn vào giúp mình hiểu với

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ì???

IDL viết 20:26 ngày 30/09/2018
  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;
    });
  }
Đinh Công Mạnh viết 20:23 ngày 30/09/2018

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

cpt viết 20:23 ngày 30/09/2018

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’)

Đinh Công Mạnh viết 20:19 ngày 30/09/2018
    $(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

Trần Đăng Khoa viết 20:17 ngày 30/09/2018

@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)

Bài liên quan
0