如何在codeigniter中处理多个参数

时间:2013-02-01 08:40:52

标签: php codeigniter

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

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

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

请帮我解决这个问题。

1 个答案:

答案 0 :(得分: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';

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