亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

使用PHP+JQuery+Ajax分頁的實現

2019-11-20 22:46:57
字體:
來源:轉載
供稿:網友

為了鍛煉下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);gt(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加載的邏輯順序

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久免费福利视频| 久久久精品国产网站| 国产欧美日韩中文字幕在线| 国产亚洲欧洲黄色| 久久国产加勒比精品无码| 国产丝袜一区二区三区| 亚洲18私人小影院| 国内精品国产三级国产在线专| 日韩精品在线免费观看| 91黑丝高跟在线| 久久久亚洲国产| 欧美亚洲国产日韩2020| 97av在线视频| 久久久免费在线观看| 中文字幕日韩专区| 久久久极品av| 色av吧综合网| 91国产精品视频在线| 日韩欧美中文字幕在线观看| 亚洲人成绝费网站色www| 亚洲va欧美va国产综合久久| 91wwwcom在线观看| 欧美日韩成人精品| 国内精品一区二区三区四区| 精品五月天久久| 午夜免费在线观看精品视频| 亚洲男人第一av网站| 日韩免费在线视频| 亚洲欧洲在线播放| 日韩一区二区三区国产| 亚洲性av在线| 国产一区二区丝袜高跟鞋图片| 欧美性猛交xxxx偷拍洗澡| 91av在线国产| 亚洲国产高潮在线观看| 亚洲 日韩 国产第一| 伊人久久久久久久久久| 久久视频国产精品免费视频在线| 国产+人+亚洲| 亚洲中国色老太| 国产91精品久久久| 精品人伦一区二区三区蜜桃免费| 久久精品国产久精国产思思| 欧美电影在线观看网站| 欧美激情一区二区三区在线视频观看| 欧美激情视频一区二区三区不卡| 日韩av影片在线观看| 亚洲国产精品嫩草影院久久| 欧美国产极速在线| 欧美一级电影免费在线观看| 狠狠躁夜夜躁人人爽天天天天97| 亚洲一区久久久| 欧美日韩精品在线视频| 亚洲性线免费观看视频成熟| 国产精品视频xxx| 久久久久久综合网天天| 欧美国产日本高清在线| 日日摸夜夜添一区| 亚洲国产一区二区三区四区| 欧美激情精品久久久久久免费印度| 欧美一级大片视频| 日本久久久久久久久久久| 亚洲国产精彩中文乱码av在线播放| 日韩精品极品在线观看播放免费视频| 中文字幕精品在线视频| 91视频国产一区| 伊人久久综合97精品| 久久精品91久久香蕉加勒比| 久久夜色撩人精品| 亚洲欧美日韩区| 国产脚交av在线一区二区| 精品人伦一区二区三区蜜桃网站| 久久精品这里热有精品| 国产免费亚洲高清| 亚洲精品永久免费精品| 国产精品永久免费在线| 亚洲精品国产拍免费91在线| 亚洲免费人成在线视频观看| 欧美成人性色生活仑片| 精品中文字幕久久久久久| 欧美精品久久久久久久| 视频直播国产精品| 51精品在线观看| 欧洲美女7788成人免费视频| 久久久91精品国产| 亚洲aⅴ日韩av电影在线观看| 欧美日韩免费在线观看| 亚洲欧美日本另类| 亚洲视频在线免费观看| 91wwwcom在线观看| 国产精品成人国产乱一区| 欧美激情一二区| 久久久久久久久久av| 精品久久久香蕉免费精品视频| 国产精品一区二区在线| 亚洲人成网站999久久久综合| 精品在线观看国产| 黑人巨大精品欧美一区免费视频| 亚洲精品资源美女情侣酒店| 欧美成人黑人xx视频免费观看| 成人情趣片在线观看免费| 亚洲国产精品热久久| 中国人与牲禽动交精品| 亚洲精品99久久久久| 少妇av一区二区三区| 美日韩精品免费观看视频| 日韩av成人在线观看| 97在线免费视频| 久久国产精品久久久| 国产精品爽爽爽爽爽爽在线观看| 中文字幕亚洲一区二区三区五十路| 亚洲精品电影在线| 亚洲影院色无极综合| 国产精品视频内| 欧洲美女7788成人免费视频| www亚洲精品| 成人福利视频在线观看| 国产成人高清激情视频在线观看| 成人h视频在线观看播放| 成年无码av片在线| 91久久国产精品| 国产精品视频久久久| 久久免费国产精品1| 国产亚洲精品美女久久久| 一区二区亚洲欧洲国产日韩| 亚洲情综合五月天| 亚洲免费视频观看| 亚洲成人黄色在线| 成人在线国产精品| 欧美视频在线看| 91精品成人久久| 中文在线资源观看视频网站免费不卡| 国产色视频一区| 欧美性xxxxxxx| 国产午夜精品视频| 国产成人精品在线观看| 国产区精品视频| 亚洲午夜未满十八勿入免费观看全集| 亚洲黄色免费三级| 欧美丰满少妇xxxxx| 成人中文字幕在线观看| 亚洲国产成人91精品| 91精品国产综合久久香蕉922| 国产精品日日做人人爱| 欧美在线亚洲在线| 26uuu亚洲国产精品| 亚洲黄色av网站| 国产精品成人免费视频| 欧美日韩成人在线视频| 久久久噜久噜久久综合| 青草青草久热精品视频在线网站| 国产一区二区黄| 成人激情黄色网| 国产精品亚洲自拍| 97视频在线观看网址| 久久久久久高潮国产精品视| 国产精品爽爽ⅴa在线观看| 中文字幕国产精品久久| 国内免费久久久久久久久久久| 欧美高清在线视频观看不卡| 中文字幕亚洲图片| 欧美成人激情图片网| 亚洲成人激情视频| 国模极品一区二区三区|