0

我允许用户以两种方式查看书籍:“列表”视图或“网格”视图。所以我想以网格或列表的形式接收参数,并将视图页面显示为接收的参数。但我不知道如何在 codeigniter 的控制器中处理这个问题。

而且我的页面上已经有分页了。我的网址正在显示http://localhost/thebestbookfinder.com/viewallbooks/books/pgn/9 ,在此我想传递一个参数,如 view=grid 或 view=list,我必须在我的控制器中接收它。

所以我的网址可能是: http://localhost/thebestbookfinder.com/viewallbooks/books/pgn/9/grid 那么我将如何在我的控制器中接收它。

请帮我解决这个问题。

4

1 回答 1

0

你为什么不像你在这里得到页码的方式那样做呢$page = ($this->uri->segment(4)) ? $this->uri->segment(4) : 0;

你可以这样做$viewType = ($this->uri->segment(5)) ? $this->uri->segment(5) : 'list';,如果你想将它传递给视图$data['viewType '] = $viewType;

然后稍后在您调用视图的部分中$this->load->view('commonfiles/booksview',$data);,您可能已经创建了 2 个单独的视图,一个用于列表视图,一个用于网格视图,并根据$viewType或将两个代码都放在一个视图文件中调用适当的视图文件并从中选择哪个显示与if比较的语句$data['viewType']。我推荐第一个选项。

同样在 CodeIgniter 中,您可以将 URI 段作为函数的参数按照它们在 URI 中的顺序传递,就像这个例子function books($hasPagination, $paginationNumber, $viewType = 'list'){将从这个 URI 获取参数,http://localhost/thebestbookfinder.com/viewallbooks/books/pgn/9/grid并且值将像这样分配: $hasPagination = 'pgn'; $paginationNumber = 9; $viewType = 'grid';

您也可以像往常一样传递 GET 参数viewallbooks/books?pagination=true&pgn=9&viewType=list,然后使用内置函数处理每个参数,例如 this$viewType = $this->input->get('viewType')$pgn = $this->input->get('pgn')

于 2013-02-01T09:02:37.700 回答