2

「グリッド」ビューまたは「リスト」ビューのいずれかで本を表示するページがあります。

だから私の現在のURLは http://localhost/thebestbookfinder.com/viewallbooks/books/pgn/grid/8

ビューページから「リスト」リンクをクリックすると、この部分/grid//list/他の同じ部分に変更するだけで現在のページが読み込まれるはずです。すなわちhttp://localhost/thebestbookfinder.com/viewallbooks/books/pgn/list/8

私はこれを試しましたが、これは役に立ちません。この問題を解決するのを手伝ってください。

inMyViewPage.php

<td width="10%" style="font-size:12px;color: red;"> 
       <?php
                                       echo "".anchor('#', 'Grid', array('id' => '')).""; 
                                       echo "".anchor(base_url().'viewallbooks/books/pgn/'.$this->uri->segment(4),'  List', array('id' => ''))."";
                                        ?>
                                    </td>

フォームの送信で問題が解決した場合は、リンクの代わりにそれを手伝ってください

Controller.php

 function books()
{
    $config = array();  
    $config['base_url'] = base_url().'viewallbooks/books/pgn/'.$this->uri->segment(4); 
    $config["total_rows"] = $this->Booksmodel->record_count_for_secondtopBooks('3');
    $config['uri_segment'] = 5;
    $config['per_page'] = 8;
    $config['full_tag_open'] = '<div id="pagination">';
    $config['full_tag_close'] = '</div>'; 

    $this->pagination->initialize($config);
    $page = ($this->uri->segment(5)) ? $this->uri->segment(5) : 0;

    $data["query"] = $this->Subjectmodel->get_subjects();
    $data["query1"]=  $this->Editionmodel->get_edition();





    $data["query2"]=$this->Booksmodel->get_all_book_list_atHomeTop('3',$config["per_page"], $page);


    $viewType = ($this->uri->segment(4)) ? $this->uri->segment(4) : 'list';

     if($viewType=='list')
     {
          $this->load->view('commonfiles/bookslistview',$data);

     }
      else {
                  $this->load->view('commonfiles/booksgridview',$data);  
          }
}
4

3 に答える 3

1

このようにroute.phpにルートを追加する必要があります

$route['viewallbooks/books/(:any)'] = "viewallbooks/books/$1";

関数books()sholdには、デフォルトで値を持つ3つのパラメーターが含まれています
。以下はより正確なバリアンです。

    function books($img_type = 'png', $view_type = 'list', $page = 0) {
            $config = array();  
            $config['base_url'] = base_url().'viewallbooks/books/'.$img_type.'/'.$view_type.'/'.$page; 
            $config["total_rows"] = $this->Booksmodel->record_count_for_secondtopBooks('3');
            $config['uri_segment'] = 5;
            $config['per_page'] = 8;
            $config['full_tag_open'] = '<div id="pagination">';
            $config['full_tag_close'] = '</div>'; 

            $this->pagination->initialize($config);

            $data["query"] = $this->Subjectmodel->get_subjects();
            $data["query1"]= $this->Editionmodel->get_edition();
            $data["query2"]= $this->Booksmodel->get_all_book_list_atHomeTop('3',$config["per_page"], $page);

            if($viewType=='list')
                $this->load->view('commonfiles/bookslistview',$data);
            else
                $this->load->view('commonfiles/booksgridview',$data);
        }
于 2013-02-03T13:27:56.443 に答える
0

次のいずれかを行う必要があります。

  • 新しいURL(グリッド)を使用してページをリロードし、そのテンプレートをレンダリングします

また:

  • グリッドビューとリストビューの両方をレンダリングしてから、見たいものに基づいてコンテンツを動的に(css / javascriptを使用して)非表示にします。

また:

  • グリッドビューをAJAXでロードし、リストをそれに置き換えます。
于 2013-02-03T12:22:22.767 に答える
0

これを行う:

 <?php  echo "".anchor(base_url().'viewallbooks/books/pgn/grid/'.$this->uri->segment(5),'  Grid', array('id' => ''))."";
  echo "".anchor(base_url().'viewallbooks/books/pgn/list/'.$this->uri->segment(5),'  List', array('id' => ''))."";  ?>

そして、上記のコントローラーで何も変更する必要はありません。

于 2013-02-04T04:57:01.820 に答える