0
我有這個codeigniter項目正在處理中。我正在顯示一些問題,我想使用分頁來批量顯示問題。當第一次加載(我的意思是在第一頁)時,一切工作正常,但當我導航到下一頁時,它無法工作。所以我意識到表單輸入值不會保留在後續頁面上,所以我決定使用會話來保存這些表單值,但它仍未被保留。我的控制器:未在會話中保留的表格輸入值
public function displayQuestions()
{
$sessData = [
'classLevel' => $this->input->post('class_level'),
'subject' => $this->input->post('subject')
];
$this->session->set_userdata($sessData);
$config = array();
$page = (($this->uri->segment(3)) ? $this->uri->segment(3) : 0);
$config["base_url"] = base_url().'questions/displayQuestions';
$config["total_rows"] = 20;
$config["per_page"] = 5;
$config["uri_segment"] = 3;
$this->pagination->initialize($config);
$data["links"] = $this->pagination->create_links();
// print_r($this->session->classLevel); exit;
$data['questions'] = $this->questions_model->selectQuestions($this->session->classLevel, $this->session->subject, $config["per_page"], $page);
// $this->load->view('layouts/header');
$this->load->view('users/questions', $data);
// $this->load->view('layouts/sidebar');
// $this->load->view('layouts/footer');
}
注意:我使用表單輸入值來查詢數據庫以顯示問題。我的模型:
public function selectQuestions($classLevel, $subject, $limit, $start)
{
$questions = $this->db->where('class_level', $classLevel)
->where('subj_code', $subject)
// ->order_by('id', 'RANDOM')
->limit($limit, $start)
->get('questions');
// $questions = $this->db->limit($limit, $start)
// ->get('questions');
if ($questions->num_rows() > 0) {
return $questions->result_array();
// print_r($questions->result_array());
}
return false;
}
我猜你每次調用displayQuestions方法時都會重置會話數據。如果發佈數據爲空,會話會再次歸零? – jtheman
沒有我不重置會話數據。會話仍然保存一些以前的數據傳遞給它。 – ammezie
但''classLevel'=> $ this-> input-> post('class_level'),'將關鍵'classLevel'的會話數據設置爲發佈數據,但是如果發佈數據爲空,您將重置會話? – jtheman