私はたくさん試しましたが、これを理解するようですが、どんな助けにも感謝しています。私の記事には投票権があり、投票された記事を最も多く表示するはずのページがあります。 codeigniter btwを使用しています。 コントローラ:codeigniterページ区切りが期待通りに機能しない
function most_voted()
{
$per_page = 3;
$cur_page = $this->uri->segment(4);
/*
if($cur_page == "") $cur_page = 1;
else $cur_page = (integer)$cur_page;
*/
$offset = ($cur_page - 1) * $per_page;
if($offset < 0) $offset = 0;
$this->load->model('article_model');
$result_rows = $this->article_model->GetMostVoted($per_page,$cur_page);
$total_rows = sizeof($result_rows) + 10;
echo "total rows is : ".$total_rows.'<br>';
echo "cur page is : $cur_page <br>";
//$this->load->library('pagination');
$config['base_url'] = base_url().'articles/most_voted/page/';
$config['uri_segment'] = 4;
$config['num_links'] = 3;
$config['first_link'] = '<<First';
$config['last_link'] = 'Last>>';
$config['prev_link'] = '< Previous';
$config['next_link'] = 'Next >';
$config['total_rows'] = $total_rows;
$config['per_page'] = $per_page;
$this->pagination->initialize($config);
$data['articles'] = $result_rows;
$data['view_file_name'] = 'articles/all_articles_view';
$this->load->view('includes/template',$data);
//echo $this->db->last_query();
}
モデル:
function GetMostVoted($limit,$offset)
{
$this->db->order_by('votes','desc');
$q=$this->db->get('cgh_articles',$limit,$offset);
if($q->num_rows() > 0)
{
foreach($q->result() as $row)
{
$data[] = $row;
}
return $data;
}
}
問題: 問題は、私は <前の1 2 3 4 5次へ> のようにページネーションを得るが、ものの2をクリックするとに行くということですurl:page/3 3をクリックするとurlに行きます:page/6 4をクリックするとurlに行きます:page/9 など。 ページ/ 2に行くには2をクリックし、ページ/ 3には3をクリックするなどします。何がうまくいかないかについての提案はありますか?
これ以上の情報が必要な場合は、ありがとうございます。
ありがとうございます。 sizeof($ result_rows)+ 10はちょうど整数ですが、当分の間はハードコード化されています。返される結果の実際の数で置き換えます。だから、あなたは既定のciページネーションが私が去ったものを私に与えないだろうか? – SIndhu
あなたは何か違うものがあるように思えます。しかし、それを考えるなら、Codeigniterライブラリの仕組みは良い習慣です。あなたのページのレンダリングを開始するべき項目を正確に示しているので、自分自身でそれを把握する必要はありません。 –
私はあなたの意見を見て、今ページネーションライブラリがどのように機能するのか理解しています(ただし、ciユーザドキュメントのどこにでも言及しています)。しかし、正直言って、私は私のサイトにそれを持っていないと思っています。それが私を混乱させたら、私のエンドユーザをさらに混乱させるでしょう。ユーザーpovから、ほとんどのサイト、フォーラムでは、3,7 = 7などをクリックするとページ3に移動します。だから、私はそれが違う何かを書く必要があると思いますか? – SIndhu