【问题标题】:CodeIgniter - Keep input value after clicking paginationCodeIgniter - 单击分页后保留输入值
【发布时间】:2019-02-22 04:40:56
【问题描述】:

我有input type = "date",它允许用户选择一个日期范围来运行查询并在表格中显示。但是,当我从 pagination 中单击 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 学习者。

【问题讨论】:

  • 如果你是分页,最好使用GET方法,这样搜索因素就会在url中。
  • @Rafee 我可以知道如何修改我的代码以使用 get 方法吗?
  • formget.com/pagination-in-codeigniter 在 google 中查找更多示例。

标签: php html codeigniter pagination


【解决方案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');

或者更好地使用获取请求和发送日期作为参数。

【讨论】:

  • 你能帮我修改一下代码吗?
【解决方案2】:

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

方法=“获取”

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多