PHP+JQuery+Ajax 페이지 나 누 기 방법 상세 설명

이 사례 는 PHP+JQuery+Ajax 가 페이지 를 나 누 는 방법 을 설명 한다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
jQuery 를 단련 하기 위해 서,스스로 페이지 를 쓰기 로 결정 하 였 다.
최종 효 과 는 그림 과 같다.
어떤 자 모 를 클릭 하면 아래 에 이 자 모 를 이니셜 로 하 는 모든 단 어 를 표시 합 니 다.
페이지 별로 15 개의 단 어 를 표시 하고 각 페이지 는 20 개,1-20/20-40~~~

우선 PHP 파일 의 페이지 나 누 기 Pager 관련 코드 입 니 다.

public function searchWordsByInitial()
    // AJAX   URL     :             
    $initial = htmlentities($_POST['initial'], ENT_QUOTES,"UTF-8");
    $page = htmlentities($_POST['page'], ENT_QUOTES,"UTF-8");
    $words = $this->_createWordObj();
    $i=0;//       1  
    $perPageNum=12;//         12 
    $currentPageFirst=($page-1)*$perPageNum+1;
    $currentPageLast=$page*$perPageNum;
    //      
    $sumNum=0;
    foreach ( $words[$initial] as $key=> $word ){
      $sumNum++;
    }
    //     
    $pageNums=0;
    if( $sumNum ){
      if( $sumNum < $perPageNum ){ $pageNums = 1; }        //        $PageSize,      
      if( $sumNum%$perPageNum ){                 //             
        $pageNums = (int)($sumNum/$perPageNum) + 1;      //     ,                      
      }else{
        $pageNums = $sumNum/$perPageNum;           //      ,                 
      }
    }
    else{
      $pageNums = 0;
    }
  //Pager  
    echo $this->init_searchWordsByInitial_Pager($sumNum,$pageNums,$page);
    $tab_str.="<table ……………………          ………………"
    return $tab_str;
}


public function init_searchWordsByInitial_Pager($sumNum,$pageNums,$page)
{
     //         ,           ,      38,      21-40,    21
     $current_first_page=floor(($page-1)/20)*20+1;
     $tab_str="<div id='searchWordsByInitial_Pager' class='pagination pagination-centered'><ul>";
     for($k=0;$k<=19;$k++)
     {
       $j=$k+$current_first_page;
       $tab_str.="<button class='not_more_btn'>".$j."</button>";
     }
     $tab_str.="</ul>    <span id='sumNums'>".$sumNum."</span>   ,<span id='pageNums'>".$pageNums."</span> </div>";
     return $tab_str;
}

init.js   관련 JQuery 코드,사용자 의 동작 에 응답

//      Pager
var pageNums;//   
var sumNums;//    
function init_searchWordsByInitial_Pager(){
   pageNums=$("#pageNums").html();//JS   HTML  
   sumNums=$("#sumNums").html();
   if(pageNums==1)//      ,   Pager
   {
    $("#searchWordsByInitial_Pager").html("</br>");
   }
   //        1,         ;
   if(page_initial==undefined){ page_initial=1;}
   //      ,       20   ,     NEXT  ,         20   ;  ,LAST        20   
   $("#searchWordsByInitial_Pager ul button:eq(19)").after("<button id='more_forward' class='more'>Next</button>");
   $("#searchWordsByInitial_Pager ul button:eq(0)").before("<button id='more_backword' class='more'>Last</button>");
   //        21 ,              ,  NEXT  【pageNums<21】
   //       page   20 page,               ,  NEXT  【offset<20】
   //(    page         /                          ,   Ajax      )
   var offset;
   offset=(Math.ceil(pageNums/20)*20)-parseInt(page_initial);
   if(pageNums<21||offset<20)
   {
    $("#searchWordsByInitial_Pager ul button").slice((pageNums%20)+1).hide();
   }
   //     20 ,       ,offset=19<20,    Pager  ;         
   if(search_pageNums==20)
   {
      $("#searchWords_Pager ul button.not_more_btn").show();
   }
   //         page 1,    LAST  ;    LAST  ,           
   if($("#searchWordsByInitial_Pager ul button.not_more_btn").eq(0).html()==1)
   {
      $("#searchWordsByInitial_Pager ul button:eq(0)").hide();
   }
   else
   {
      $("#searchWordsByInitial_Pager ul button:eq(0)").show();
   }
  }
  //  NEXT  
  $("#more_forward").live("click",function(event){
    //       ,    Last   
    $("#searchWordsByInitial_Pager ul button:eq(0)").show();
    //    page   20, 1-20  21-40
    for(i=0;i<20;i++){
     $("#searchWordsByInitial_Pager ul button.not_more_btn").eq(i).html(parseInt($("#searchWordsByInitial_Pager ul button.not_more_btn").eq(i).html())+20);
     //             
     if($("#searchWordsByInitial_Pager ul button.not_more_btn").eq(i).html()==pageNums)
     {
       $("#searchWordsByInitial_Pager ul button").slice(i+2).hide();
     }
    }
    })
  //  LAST  
  $("#more_backword").live("click",function(event){
    //    20        
    $("#searchWordsByInitial_Pager ul button").show();
    for(i=0;i<20;i++){
     $("#searchWordsByInitial_Pager ul button.not_more_btn").eq(i).html(parseInt($("#searchWordsByInitial_Pager ul button.not_more_btn").eq(i).html())-20);
    }
    //       Last  
    if($("#searchWordsByInitial_Pager ul button.not_more_btn").eq(0).html()==1)
    {
      $("#searchWordsByInitial_Pager ul button:eq(0)").hide();
    }
    else
    {
      $("#searchWordsByInitial_Pager ul button:eq(0)").show();
    }
    })
   //         
   $(".initial-button-list button").live("click", function(event){
   //      A-Z   active class,             active;       .attr   .removeAttr;
   $(".initial-button-list button").removeClass("active");
   $(this).addClass("active");
   //            
   initial_value = $(this).html();
   page_initial=1;
   //          &action=list_by_initial&initial=O&page_initial=3
   btnData = "&action=list_by_initial"+ "&initial="+initial_value+"&page="+page_initial;
   $.ajax({
    type: "POST",
    url: processFile,
    data: btnData,
    success: function(data) {
     $("#word_table_by_initials").show();
     $("#word_table_by_initials").html("");
     $("#word_table_by_initials").html(data);
     init_searchWordsByInitial_Pager();
    },
    error: function(msg)
    {
      alert(msg);
    }
   });
 });
 //         (     more   )
 $("#searchWordsByInitial_Pager button.not_more_btn").live("click", function(event){
   //       active class,           active;       .attr   .removeAttr;
   $("#searchWordsByInitial_Pager button").removeClass("active");
   $(this).addClass("active");
   //         
   page_initial=$(this).html();
   //          &action=list_by_initial&initial=O&page_initial=3
   btnData = "&action=list_by_initial"+ "&initial="+initial_value+"&page="+page_initial;
   $.ajax({
    type: "POST",
    url: processFile,
    data: btnData,
    success: function(data) {
     $("#word_list_by_initials").hide();
     $("#word_table_by_initials").html("");
     $("#word_table_by_initials").html(data);
     init_searchWordsByInitial_Pager();
    },
    error: function(msg)
    {
      alert(msg);
    }
   });
 });
});

몇 가지 주의사항:
1 $("div button.not_more_bt")에서 앞의 두 선택 기 사이 에 빈 칸 이 있 고 뒤의 두 개 는 없습니다.마지막 은 클래스 선택 기 이기 때문에 button 뒤 를 따라 가 야 합 니 다.
2 .html() .val() .text()  구별
3 :eq(index),:lt(index);lt(index)의 index 는 0 에서 시작 되 며 변수 가 될 수 없 으 며 숫자 가 되 어야 합 니 다.
동적 index 가 필요 하 다 면 사용 할 수 있 습 니 다.
.eq(i)
4 var a=20;
var b=10;
var c;
c=a+b;
결 과 는 30 이 아니 야!2020 입 니 다!
정확 한 표기 법 은 c=parseInt(a)+ 입 니 다.parseInt(b);
감법 은 괜 찮 지만,그래도 좀 바 꾸 는 것 이 좋 겠 다.
PHP 의 함 수 는 intval()입 니 다.
5.코드 를 쓰기 전에 가장 좋 은 방안 을 세 워 야 한다.그렇지 않 으 면 다시 시작 하 는 것 이 더욱 힘 들 것 이다.
6 JS 코드 와 HTML 로 딩 의 논리 적 순서
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기