2011-02-26 5 views
1

私はクールな子供たちが今やっているように(FB、Twitter)、JavaScript(Jquery)を使って自分のウェブサイトのデータを動的にページ設定しています。私はそれが見た目のように、それは素晴らしい信頼性の高いシステムですが、DOMを操作してデータを追加すると、ページを離れると場所がなくなってしまうということは、いつも盗まれています。それが助け場合は、ここで私が使用しているものです:Jqueryを使用した動的ページネーション - 場所の保存方法?

$(document).ready(function(){ 
    $(".page-link").live("click",function(){ 
     $(this).html("<img src='http://www.whatever.com/img/loading_small.gif' />"); 
     var id = this.id; 
     var splitid = id.split("?"); 
     var minlimit = splitid[1]; 
     var order = splitid[2]; 
     $.ajax({ 
      type:"POST", 
      url:"http://www.whatever.com/php/selectAllWhatever.php?min="+minlimit+"&max=10&order="+order, 
      data:"min="+minlimit+"&max=10", 
      success:function(msg){ 
       $(".paging-bar").remove(); 
       $("#div").append(msg); 
      } 
     }); 
    }); 
}); 

したがって、ユーザーのページ40件の結果を言い、別のページを訪問した結果からのリンクをクリックした後、彼らがしたすべてのことページングがなくなっとされていることを見つけるために戻ってきます彼らは最初の10の結果に戻ります。批判的ではありませんが、いずれにせよ迷惑です。ページング結果にその場所を保持するにはどうすればよいのですか?私はページングの場所を示すためにいくつかのパラメータを渡すか、またはクッキーを残そうと考えましたが、それを行うためのきれいな方法を見つけることはできません。助けをあらかじめありがとう!

答えて

1

GET/POST、SESSION変数、またはCOOKIEsという2つの方法があります。

GET変数を使用するには、すべてのリンクの最後に変数を置き、すべてのリンク先ページでこれらの変数を処理するだけです。リンク先のページでは、そのページング変数を保持するためにすべてのリンクを変更する必要があります。もちろん、これは最も洗練されたソリューションではありません。

また、セッション変数で実行することもできます。
PHP:このためのコードは次のようになります - 彼らは、ブラウザを閉じると、それはリセットを意味し、それは彼らのセッションのためにページネーションのデータが保存されますので、

//This is in #selectAllWhaterver.php 
session_start(); 

$_SESSION['paginationMin'] = $_POST['min']; 
$_SESSION['paginationMax'] = $_POST['max']; 

*********************************************** 
//Then in your php when you reload the page that has pagination on it 
session_start(); 

if(isset($_SESSION['paginationMin']) 
    $min = $_SESSION['paginationMin']; 
else 
    $min = 0; 

if(isset($_SESSION['paginationMax']) 
    $max = $_SESSION['paginationMax']; 
else 
    $max = 10; 

//Now use these variables to generate wtv content you are loading 

これは、おそらく最もエレガントなソリューションです。

セッションが終了しても有効であるクッキーを使用したい場合は、このようにします。 (注:私はクッキーにはプロだん申し訳ありませんが、これは不完全である場合。)

のjavascript:

document.cookie = "paginationMin="+minLimit; 
document.cookie = "paginationMax=10"; 

//And to grab them again 


var cookies = ""+document.cookie; 
var pos = cookies.indexOf("paginationMax"); 
var pos2 = cookies.indexOf(';', pos); 

var max = unescape(cookies.substring(pos+cookieName.length+1,pos2)); 

var pos = cookies.indexOf("paginationMin"); 
var pos2 = cookies.indexOf(';', pos); 

var min = unescape(cookies.substring(pos+cookieName.length+1,pos2)); 
+0

ああ、私は本当にただのセッションを設定することについて考えていませんでした - 良い解決策!助けてくれてありがとう。 – Adamjstevenson

関連する問題