我是CodeIgniter的新手,但我想问一下分页和过滤。 我做了他们,他们彼此很好地工作,但我有两页过滤器和分页。他们给我一些错误。 - 当我点击过滤器时,url是这样的:company/components/all/names_of_filters 所以过滤器在uri段(4)工作。 ================================================= ========================但是,当我加载分页它显示我 公司/组件/所有/分页所以过滤器崩溃与分页。我宣布uri segment(5)用于加载分页,但同样的事情。这个想法是,过滤器正在从数据库变化,它是一个动态的部分。我怎样才能在 $ conf [base_url] =(company/components/all /...../)上声明它,并在这些破折号中加入一个函数,该函数连接了一个更改名称的函数filter? -------------------------------------------------- -------------------------------------------------- ----- *有没有方法? * 最佳:)在CodeIgniter上过滤和分页
1
A
回答
0
将这个文件 myhelper_helper.php在助手使用会话库... 控制器文件夹分页的
function configPagination($url,$total_rows,$segment,$per_page=10)
{
$CI = get_instance();
$CI->load->library('pagination');
$config['base_url'] = site_url($url);
$config['total_rows'] = $total_rows;
$config['per_page'] = $per_page;
$config['uri_segment'] = $segment;
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_links'] = 3;
$config['next_tag_open'] = "<li>";
$config['next_tag_close'] = "</li>";
$config['prev_tag_open'] = "<li>";
$config['prev_tag_close'] = "</li>";
$config['first_link'] = FALSE;
$config['last_link'] = FALSE;
$CI->pagination->initialize($config);
return $CI->pagination->create_links();
}
例子: Users.php
public function __construct()
{
parent::__construct();
$this->per_page = 20; // How many records per page...
$this->load->helper('myhelper');
$this->load->library('session');
$this->load->model('users_model');
}
function list($start=0)
{
if(isset($_POST['filter_status']))
{
$this->session->set_userdata('filter_status',$this->input->post('filter_status'));
}
$data['users'] = $this->users_model->get_all($start,$this->per_page);
$total = $this->users_model->count_all();
$data['pages'] = configPagination('users/list',$total,5,$this->per_page);
$data['start'] = $start;
$this->load->view('users_view',$data);
}
最后在你的模型中Users_model.php
function __construct()
{
parent::__construct();
$this->load->database();
}
function get_all($start,$limit) {
if($this->session->userdata('filter_status')!='')
{
$this->db->where('status',$this->session->userdata('filter_status'));
}
$query = $this->db->get('users', $limit, $start);
return $query;
function count_all()
{
if($this->session->userdata('filter_status')!='')
{
$this->db->where('status',$this->session->userdata('filter_status'));
}
$query = $this->db->get('users');
return $query->num_rows();
}
在您看来,这样的事情
<form action="" method="post" id="filter_form">
<div class="form-group">
<label>Status: </label>
<div class="controls">
<?php $status = array(0=>"Inactive", 1=>"Inactive",-1=>"Banned");?>
<select id="status-select" name="filter_status" class="form-contro">
<option value="">All</option>
<?php foreach ($status as $key=>$value) {
$sel = ($key==$this->session->userdata('filter_status'))?'selected="selected"':'';
?>
<option value="<?php echo $key;?>" <?php echo $sel;?>><?php echo $value ?></option>
<?php } ?>
</select>
<input type="submit" Value="Filter" />
</div></form>
0
控制器
$this->load->library('pagination');
$pagination_config['base_url'] = base_url('/webs/webs1/all/');
$pagination_config['total_rows'] = $this->model_m->count_all();
$pagination_config['per_page'] = 2;
$pagination_offset = $this->uri->segment(5);
$this->pagination->initialize($pagination_config);
$data['pagination_links'] = $this->pagination->create_links();
//end
//fetch categories from the database
$data['categories'] = $this->model_m->get_categories();
$categoryID = $this->uri->segment(4);
if($categoryID == null){
redirect('backend/subcategories/all/filterAll');
}
if(!isset($categoryID) || ($categoryID == "filterAll")) {
$data['subcategories'] = $this->model_m->get_all_subcategories();
} else {
$data['subcategories'] = $this->model_m->get_by_category($categoryID);
}
$data['selected_category'] = $categoryID;
$data['view'] = $this->load->view($view,$data,true);
$this->load->view($viewlayout,$data);
模型
public function get_by_category($id){
$query = $this->db->get_where('items', array('prod_id' => $id));
if ($query->num_rows() > 0) { return $query->result(); }
return false;
}
public function get_all_subcategories($catID = NULL,$limit = NULL ,$offset = NULL) {
if(isset($catID) && is_int($catID)) {
if(isset($limit) && isset($offset)){
$result = $this->db->get_where('items',array('prod_id' => $catID),$limit,$offset);
return $result->result();
}
$result = $this->db->get_where('items',array('prod_id' => $catID));
return $result->result();
}
if(isset($limit) && isset($offset)){
$result = $this->db->get('items',$limit,$offset);
return $result->result();
}
$result = $this->db->get('items');
return $result->result();
}
public function count_all() {
return $this->db->get('items')->num_rows();
}
相关问题
- 1. 在Codeigniter中过滤,排序和分页
- 2. 过滤和分页
- 3. codeigniter分页下拉选择过滤器
- 4. EmberJS上的分页和过滤
- 5. 过滤结果和分页
- 6. CakePHP分页和过滤器
- 7. vueJs分页和过滤
- 8. 用于排序,分页和过滤的CodeIgniter优雅库
- 9. 在CollectionViewSource上过滤后的分页
- 10. 在分页上重置Gridview过滤器
- 11. 在使用分页时过滤数据Codeigniter
- 12. 用分页过滤
- 13. codeigniter上的搜索和分页
- 14. 网上商店:使用PHP和JQuery产品过滤和分页
- 15. 火力过滤器和分页
- 16. 猫鼬分页和过滤器
- 17. Objectdatasource和Gridview:排序,分页,过滤
- 18. PHP表格排序,过滤和分页
- 19. 分页和alphabatic过滤器发出
- 20. 复合过滤和分页AngularJs
- 21. 排序,过滤和分页MVC
- 22. algolia过滤器和分页错误
- 23. Devexpress gridview过滤器,分页和排序
- 24. AngularJS中的排序,过滤和分页
- 25. Codeigniter动态分页和where_not_in
- 26. CodeIgniter的分页和GET
- 27. CodeIgniter - 路由和分页
- 28. Laravel jQuery - 分页和产品过滤器,分页URL
- 29. Django过滤器,分页和标注分页结果
- 30. codeigniter:分页在ajax页面
试图用过滤会话库工作,所以你的过滤器将被保存在分页上。 –