CodeIgniter-单击分页后保留输入值

时间:2018-09-18 07:53:08

标签: php html codeigniter pagination

我有input type = "date",允许用户选择日期范围来运行查询并显示在表格中。但是,但是,当我从分页中单击Page 2时,日期值丢失了,查询将不搜索所选择的日期。如何保持查询值运行WHERE子句。

我的控制器:

public function searchDate()
{   

   $this->load->library('session');
     if ($this->input->post('search')) { 
     $this->session->set_userdata('search' , $this->input->post('search'));
   }
   $orders=new ReportModel;

   $config["base_url"] = base_url() . "/Report/searchDate";
   $config["total_rows"] = $orders->record_count_search();
   $config["per_page"] = 150;
   $config["uri_segment"] = 3;
   $config["num_links"] = 10;
   $config['use_page_numbers'] = TRUE;
   $config['reuse_query_string'] = TRUE;

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

   $data['data']=$orders->get_orders_search($config["per_page"], $page);
   $data["links"] = $this->pagination->create_links();

   $this->load->view('includes/header');
   $this->load->view('estoreReport/list',$data);
   $this->load->view('includes/footer');
}

我的观点:

<form class="form-inline" role="search" action="<?php echo base_url('estoreReport/searchDate')?>" method = "post">
            <div class="form-group">

              <input type="date" class="form-control" placeholder="Order Date From" name = "searchDateFrom" value="<?php echo set_value('searchDateFrom') ?>" >
              <input type="date" class="form-control" placeholder="Order Date To" name = "searchDateTo" max="<?php echo date('Y-m-d'); ?>"  value="<?php echo set_value('searchDateTo') ?>" >                    
            </div>
            <button class="btn btn-default " type="submit" value = "search"><i class="glyphicon glyphicon-search"></i>
        </form>

我尝试在控制器中使用session,但似乎无法正常工作。

$this->load->library('session');
 if ($this->input->post('search')) { 
 $this->session->set_userdata('search' , $this->input->post('search'));

}

请帮助,谢谢。我是一个非常新的CI学习者。

2 个答案:

答案 0 :(得分:1)

您可以将cookie用于任务。 Official codeigniter cookie docs

要设置Cookie,请使用:

$cookie=  ['name'   => 'date',
           'value'  => $dateValue,                            
           'expire' => '1000',                                                                                   
           'secure' => TRUE];
$this->input->set_cookie($cookie);

要获取Cookie,请使用:

$this->input->cookie('date',true);

要删除Cookie,请使用:

delete_cookie('date');

或者更好地使用get request和send date作为参数。

答案 1 :(得分:0)

只需使用GET而不是POST,以便您的分页链接上带有您的搜索日期值。 在您的视图中,只需将方法更改为GET

  

method =“ get”

在获取输入值的模型上,还将方法更改为GET