2017-09-10 3 views
0

작동하는 페이지 번호가 AJAX인데 실제로 더 잘 작동하지 않습니다. 올바르게 작동하려면 페이지 번호가 AJAX 인 URL이 어떻게 작동하는지 이해하려고합니다.AJAX에서 어떻게 작동합니까?

정상적인 페이지 매김에서 AJAX가없는 경우 GET이 동일한 URL에 있었기 때문에 각 링크가 정상적으로 작동했습니다. 구체적으로는 이전과 다음 페이지가 prev 1 2 3 4 next입니다.

그러나 AJAX으로만 일련의 숫자가 작동합니다. $next = $current_page + 1;을 입력하면 $current_page 변수는 항상 $_GET["page_no"]의 값이없는 현재 URL을받습니다. 그러면 내가 8 페이지에 있고 다음 페이지 링크를 클릭하면 현재 URL에서 GET을 인식하지 못하고 다음 페이지는 1 페이지로 이동합니다.

href이 아닌 date-haref으로 작업하는 것과 관련이 있는지 알 수 없습니다.

감사

class.crud.php

public function paginglink($query,$records_per_page) 
{ 

    $self = $_SERVER['PHP_SELF']; 

    $stmt = $this->db->prepare($query); 
    $stmt->execute(); 

    $total_no_of_records = $stmt->rowCount(); 

    if($total_no_of_records > 0) 
    { 
     ?><ul class="pagination"><?php 
     $total_no_of_pages=ceil($total_no_of_records/$records_per_page); 
     $current_page=1; 
     if(isset($_GET["page_no"])) 
     { 
      $current_page=$_GET["page_no"]; 
     } 
     if($current_page!=1) 
     { 
      $previous =$current_page-1; 
      echo "<li class='page-item'><a href='#' class='page-link' data-href='".$self."?page_no=1'>First</a></li>"; 
      echo "<li class='page-item'><a href='#' class='page-link' data-href='".$self."?page_no=".$previous."'>Back</a></li>"; 

     } 
     for($i=1;$i<=$total_no_of_pages;$i++) 
     { 
      if($i==$current_page) 
      { 
       echo "<li class='page-item'><a href='#' class='page-link' data-href='".$self."?page_no=".$i."' style='color:red;'>".$i."</a></li>"; 
      } 
      else 
      { 
       echo "<li class='page-item'><ahref='#' class='page-link' data-href='".$self."?page_no=".$i."'>".$i."</a></li>"; 
      } 
     } 
     if($current_page!=$total_no_of_pages) 
     { 
      $next=$current_page+1; 
      echo "<li class='page-item'><a href='#' class='page-link' data-href='".$self."?page_no=".$next."'>Next</a></li>"; 
      echo "<li class='page-item'><a href='#' class='page-link' data-href='".$self."?page_no=".$total_no_of_pages."'>Last</a></li>"; 
     } 
     ?></ul><?php 
    } 
} 

AJAX

$('.page-link').click(function (e) { 
    e.preventDefault(); 

    var url = $(this).data('href'); 

    $.ajax({ 
     url: url, 
     success: function (response) { 

      var html = $('<h1/>', {html : response}).find('#paginacao-ajax'); 
      $('#paginacao-ajax').html(html)    

     } 
    }); 
}) 

답변

0

당신이 URL에 현재 페이지 번호를 추가하는 데 필요한 AJAX를 호출하기 전에 쿼리 변수로 다음과 같이됩니다 :

http://my-server.domain/path?page_no=4 

마지막 비트는 PHP에서 $ _GET에 의해 선택되는 비트입니다. 자바 스크립트에서 현재 페이지 번호를 감지하고 클릭 된 URL에 추가 할 수있는 방법이 필요합니다.

P. URIJS와 같은 라이브러리를 사용하여 끝에 붙여 넣기보다는 URL을 조작하는 것이 좋습니다.

+0

감사를 GET 사용하는, 그러나 나는 .htacess와 PHP는 URL을 다시 작성합니다 – Gislef

0

봅니다 방법이 답장을

$.ajax({ 
    url: url, 
    method: "GET", 
    success: function (response) { 
     var html = $('<h1/>', {html : response}).find('#paginacao-ajax'); 
     $('#paginacao-ajax').html(html)    
    } 
});