【问题标题】:how can i do pagination without reaload page in wordpress如何在wordpress中不重新加载页面进行分页
【发布时间】:2012-11-30 22:13:16
【问题描述】:

如何在 wordpress 中不重新加载页面进行分页。 我使用以下代码进行分页,但这里的页面是为每个分页重新加载的。 我该怎么做才能停止 realod 页面???请建议我。

<?php
                       $page = (get_query_var('page')) ? get_query_var('page') : 1     

                       $limit=10;
                       $offset = ( $page - 1 ) * $limit;    
                      $data = $wpdb->get_results("select * from wp_products order by product_id  $sort_by
                                          LIMIT $offset,$limit ");
                 $total=$wpdb->get_results("select * from wp_products ");
            $pages = COUNT($total);
            $pages = ceil($pages / $limit);
            $querystring = "";
            foreach ($_GET as $key => $value) {
                if ($key != "page") $querystring .= "$key=$value&amp;";
            }

            // Pagination
            ?>


     <div class="pagination">
               <?php
              if( $pages > 1)
              {
                $range=1;
                $showitems = ($range * 2)+1;  
                $page1=$page;
                $prev=$page1-1;
                if($page > 1)
                {
                    echo "<a  class=\"page gradient\" ";
                    echo "href=\"?{$querystring}page=$prev";
                    echo "\">Previous</a> ";
                }
                for ($i = 1; $i <= $pages; $i++)
                   {
                        if (1 != $pages &&( !($i >= $page+$range+1 || $i <= $page-$range-1) || $pages <= $showitems ))
                             {
                                if($i == $page) 
                                { 
                                    echo  "<span class=\" page active\">".$i."</span>";
                                }
                                else
                                { 

                                echo "<a class=\"page gradient\"";
                                echo "href=\"?{$querystring}page=$i";
                                echo "\">$i</a> ";
                                }

                             }
                        }
                        if($page!=$pages)
                        {
                        if($showitems < $pages)
                            {
                                echo "..... ";
                            }
                            $page1=$page;
                            $next=$page1+1;
                            echo "<a " . ($i == $page ? "class=\"page active\" " : "class=\"page gradient\"");
                            echo "href=\"?{$querystring}page=$next";
                            echo "\">Next</a> ";
                        }
              }
                ?>                                         
                </div>

【问题讨论】:

标签: php javascript jquery wordpress pagination


【解决方案1】:

只需一次获取所有页面,然后在同一页面上使用 jquery datatable js 进行分页,这样页面将不会重新加载。 此处为数据表示例。

http://datatables.net/examples/basic_init/alt_pagination.html

【讨论】:

    【解决方案2】:

    尝试这样的事情怎么样:

    $('.page').click(function(e) {
        e.preventDefault();
        $.ajax({url: $(this).prop('href'), success: function(d) {
            var page = $(d).find('.pagination').html();
            $('.pagination').html(page);
        }});
    });
    

    这个使用jQuery来禁用下一个链接的正常点击事件,抓取下一个链接的href,向下一页发出AJAX请求,保存下一个页面分页div的html,替换当前页面的分页div 与新的。

    【讨论】:

    • 好的,但是没有更多信息,我无法帮助您。什么没用? ajax请求失败了吗?你收到错误信息了吗?你有一个正在发生的事情的例子吗?您提供的信息越多,我能提供的帮助就越多。
    • :我已经修复了这个错误。我没有得到代码的效果,我试图通过添加警报来调试它但没有得到警报。
    猜你喜欢
    • 2011-09-22
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多