用户
 找回密码
 入住 CI 中国社区
搜索
查看: 15025|回复: 36
收起左侧

关于提交表单后分页的问题

[复制链接]
发表于 2008-4-21 17:34:02 | 显示全部楼层 |阅读模式
表单提交查询后,分页
因为有多个页
但是取下一页的时间,通过表单提交的值却变了,怎么才能让值不变

我在控制器中没有传其它参数

比如
控制器
function get_test()
{
$this->load->model('model_zjcy','',true);
  $this->load->library('pagination');
$count=$this->model_zjcy->get_test_list
$page_cfg['base_url'] =  base_url(). "/do.php/zjcy/get_test/";

$page_cfg['total_rows'] =$count->num_rows();
$page_cfg['per_page'] = '20';
    $page_cfg['full_tag_open'] = '<p>';
    $page_cfg['full_tag_close'] = '</p>';
$page_cfg['first_link'] = '首页';
$page_cfg['last_link'] = '尾页';
$this->pagination->initialize($page_cfg);
$data['page_links'] = $this->pagination->create_links();
    $data['rctj'] =$this->model_zjcy->get_test_list($page_cfg['per_page'],$this->uri->segment(3));   
$this->load->view('zjcy/zjcy_test',$data);
}
模型:

function get_test_list($num="",$offset="")
{
    $this->db->select('test.*');
$this->db->from('test');
$this->db->where('test.sex', $this->input->post('sex'));
$this->db->where('test.qualifications', $this->input->post('qualifications'));
$this->db->like('posts',$this->input->post('posts'),'both');
$this->db->like('address',$this->input->post('address'),'both');
$this->db->orderby("pubdate", "desc");
$this->db->limit($num,$offset);
$query = $this->db->get();
return $query;
}

}

只要我取下一页时,所取的值就不是我想得到的值

这个是为什么
请高手帮帮忙
发表于 2008-4-21 18:05:23 | 显示全部楼层
没听懂你说的什么。什么值变了?
发表于 2008-4-22 02:01:25 | 显示全部楼层

这个问题是值得注意的

因为你第一次进行查询时,你是以POST方式提交查询条件,这样第一次的结果查询出来,分页生成,没什么异常,但当你随便点一个分页链接后,你的POST提效查询的条件就没了,这样就查询不出东东咯,解决办法就是将查询条件存入session或是用url带查询条件形式来进行点击分页链接查询 :)
 楼主| 发表于 2008-4-22 08:44:49 | 显示全部楼层

回复 2楼 的帖子

我是说传递过去的值变了
像这种值
$this->input->post('qualifications')
发表于 2008-4-22 09:42:05 | 显示全部楼层
为什么会变?你不修改肯定不会变啊。
发表于 2008-4-22 10:23:58 | 显示全部楼层
POST不会因为你刷新当前页面就改变吧
 楼主| 发表于 2008-4-22 10:58:32 | 显示全部楼层

回复 5楼 的帖子

我也认为不会变,只有一页的情况
就是我想要的结果
但是有将结果分成几页后,就不是我想要的结果了
 楼主| 发表于 2008-4-22 11:00:16 | 显示全部楼层

回复 3楼 的帖子

我用session 的方法也不行了,当查询结果只有一页时,没有问题,多分几页也是一样的
值还是改变了
不知道你用session 是怎么做的
发表于 2008-4-22 11:01:21 | 显示全部楼层
那应该是你limit后的参数传递不对吧
 楼主| 发表于 2008-4-22 11:07:28 | 显示全部楼层

回复 9楼 的帖子

那为什么只有一页的时候是对的呢
本来我查询结果只有5条
现在此我测试时将每一页的20条改为2,
单击下一页时,就不是我想要的结果
因为这时where 的条件变了,所以就不是我想要的结果了

本版积分规则