0

次のような URL のページがあります。

http://***.com/profile/username#profile_favs

私のページネーションでは、次のようになります。

http://***.com/profile/username?s=0&p=1#profile_favs

最後の例は機能しません。

基本的に、私のページネーション関数は次のようになります。

function Pagination($pages, $start, $display, $link_url="", $anchor="") {

echo '<div id="pagination">';

    $current_page = ($start / $display) + 1;

    $paginator_num = 5;
    $pages_display = 10;

    if ($current_page > $pages - $paginator_num) {
        $paginator_num = $pages_display - ($pages - $current_page);
    } elseif ($current_page < $paginator_num + 1) {
        $paginator_num = $pages_display - $current_page;
    } else {
        $paginator_num = 5;
    }

    $min = max($current_page - $paginator_num, 1); 
    $max = min($current_page + $paginator_num, $pages); 

    for ($i = $min; $i <= $max; $i++) {
        if ($i != $current_page) {
            echo '<div class="pagination_link">';
                echo '<a href="/'.$link_url.'?s=' . (($display * ($i - 1))) . '&p=' . $pages . $anchor.'">' . $i . '</a>';
            echo '</div>';

        } else {
            echo '<div id="pagination_active" class="pagination_link">';
                echo $i . ' ';
            echo '</div>';
        }
    }       

    echo '</div>';
}

そして、これはページを計算する部分です (この部分は、私のページネーション関数の直前に含まれます):

<?php
$display = $display_num;

if (isset($_GET['p']) && is_numeric ($_GET['p'])) {
    $pages = $_GET['p'];

} else {
    $total_results = $qr_num;

    if ($total_results > $display) {
        $pages = ceil ($total_results / $display);
    } else {
        $pages = 1;

    }
}

if (isset($_GET['s']) && is_numeric ($_GET['s'])) {

    $start = $_GET['s'];

} else {
    $start = 0;
}



?>

ここで私の質問は次のとおりです。上記の URL でそのページネーションを機能させるための回避策はありますか。

http://***.com/profile/username?s=0&p=1#profile_favs

実際、私はGETパラメータのないソリューションを好みます。

4

1 に答える 1

1
  1. XMPHttpRequest オブジェクトで AJAX 呼び出しを使用して、get パラメータなしでフェッチすることができます。

  2. (Apache を使用している場合) できるもう 1 つの方法は、mod_rewrite で URL を確認することです。

それが役立つことを願っています:)

于 2013-08-05T02:48:00.400 に答える