2012-01-18 8 views
0

ビルド中のWebアプリケーションにロード機能を実装しようとしています。 アプリケーションが読み込まれると、コントローラーにajax呼び出しが行われ、データベースからデータを取得してJSONでエンコードします。 私はmysqlクエリの制限とオフセットを利用しています。ユーザがスクロールするときに読み込まれるデータが増えています。 これは、AJAX呼び出しは、私がページにこのデータを分割するにはどうすればよいjsonで他の機能をロードする

function latest_pheeds($offset = 0) { 
      //Confirm if a user is logged before allowing access 
      if($this->isLogged()) 
      { 
       //Limit 
       $limit = 20; 
       //user id 
       $user_id = $this->session->userdata('user_id'); 
       //load pheeds 
       $dt = $this->pheed_model->get_latest_pheeds($limit,$offset);  
       $data = $dt['pheeds']; //data 
       $total = $dt['total']; //Total no of rows of data 
       $return['pheeds'] = $data; 
       echo json_encode($return); //encode in json 

      } else { 
       $this->output->set_status_header('401',"Attempting Unauthorized Access"); 
      } 
     } 

に行われ、コントローラのメソッドではありませんので、私は単純に実装するためのAJAX呼び出しを経由してメソッドに引数として何ページを渡すことができますjQueryでもっと読み込みますか? $limit(page number - 1)を乗じて

答えて

2

計算$offset:$ページが1の場合

$offset = ($page - 1) * $limit; 

だから、それは(1 - 1) * 20 = 0 * 20 = 0

になります$ページが2であれば、それは(2 - 1) * 20 = 1 * 20 = 20

になります

名前を変更しても機能パラメータ$offset$page

[EDIT]

はまた、私がどうなるのか必要以上に、より多くの行を照会しているので、次のページがある場合、私は検出することができ、例えば:

$dt = $this->pheed_model->get_latest_pheeds($limit + 1,$offset); 
$next_page = false; 
if (count($dt) > $limit) { 
    $next_page = true; 
    $dt = array_pop($dt); // Excluding the last row so it is same size as $limit 
} 
// More code.... 
$return['next_page_exists'] = $next_page; 
+0

私は次のページを特定する方法私もjsonでjcodeでそれをエンコードすることができます – MrFoh

+0

NOtは今あなたを得ています。あなたは次のページのURLが何であるかを知る方法を意味しますか?それで '$ next_page_number = $ page + 1'です – Kristian

+0

助けてくれてありがとう – MrFoh

関連する問題