0

私の問題を詳しく説明させてください

製品というテーブルがあります

Products : Name , views , sale_wanted , added_date

私はすべての製品をビューにリストしています。
私は0または1を意味するフラグを介して必要な販売を処理しています
。リストを並べ替えるためのいくつかのリンクがあります。

Most Viewed    
Wanted    
For Sale    
New Arrivals    

これで、ユーザーがクリックすると、すべてのリストがパラメーターに従ってソートされます。
Codeigniterのページ付けクラスを使いたいです。
ここにいくつかの問題があります。
私がクリックしているとき、Wantedと仮定してパラメータを送信すると、必要なすべての製品が一覧表示されます。

Now i click on a pagination link and the wanted parameter is gone 
and the list becomes without wanted parameter.    

同じことが他のアンカーにも当てはまります。
それがまだ私のパラメータを持っているように、私はそれを制限しなければなりません。
2番目の問題は、Codeigniterが見ているものが遅れていることです。
ユーザーが選択できるリンクが必要です。つまり、ユーザーが1ページに表示したい製品の数を選択する機能をユーザーに提供したいということです。

Let suppose 5 ,10 ,15 ,20    

大きい数を選択すると、ページ数が減ります。
それでも私は同じ機能が欲しいです。
重要な点は、これらすべてを1回のショットで処理したいということは、アンカーごとにコードを複製したくないということです。専門家からの提案とページネーションライブラリに関するヘルプが必要です。

4

2 に答える 2

0
$seg=3
$noOfresultsToshow=$this->uri->segment('5')//use if else for by default no of results
$typeOfresult=$this->uri->segment('4'); //Most Viewed Wanted For Sale    New Arrivals
$config['total_rows'] = $countqueryresults;// mention the total rows here
$config['per_page'] = $noOfresultsToshow;
$config['uri_segment'] = $seg;
$this->pagination->initialize($config);
$data['yourvariable'] = $this->model_name->getData($config['per_page'], $this->uri->segment($seg),$typeOfresult);
$data['links'] = $this->pagination->create_links();

ビューファイル内echo $links;

于 2012-09-26T10:52:31.697 に答える
0

この問題の解決策を見つけました。

CodeigniterPaginationライブラリで2つのメソッドを作成しました

はい、どうぞ

2つの新しい変数を定義しました

var $base_link  =   '';
var $per_page_link  =   TRUE;
var $per_page_array =   array();

ユーザーは初期化中に両方を定義できます

$config['per_page_link']    =   TRUE;
$config['per_page_array']   =   array(5,10,15,20);
$this->pagination->initialize($config);

今、メソッド

public function create_per_page()
{
    $CI =& get_instance();

    $output =   '';
    $current    =   $CI->uri->segment(3,5);

    if($this->per_page_link === TRUE AND count($this->per_page_array) > 1){

        foreach($this->per_page_array as $row){

            if($current == $row){
                $output .=  $this->cur_tag_open . $row . $this->cur_tag_close;
                $output .=  ' ';                   
            }else{
                $output .=  '<a href="'.$this->base_link.$row.'/1">'.$row.'</a>';
                $output .=  '&nbsp;';
            }
        }

    }
    return  $output;
}

そしてもう1つはcreate_per_page_links()です。create_linksメソッドのコードをコピーして変更しました。create_per_page_links()の開始時に、これらの行を追加しました。

$this->per_page =   $CI->uri->segment(3,5);
$this->uri_segment  =   $CI->uri->segment(4,1); 

ただし、これは上のセグメントでのみ機能します。クエリ文字列でテストしていません。また、per_page_linkがFALSEの場合、両方の方法は機能しません。create_per_page_linksを呼び出すと、次のように生成されます

« First  < 1 2 3 4 5 >  Last »

そして、create_per_pageは以下を生成します

5 10 15 20  

そして完了

于 2012-09-27T07:43:30.717 に答える