이 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 메서드를 호출 할 때마다 세션 데이터를 다시 설정 한 것 같습니다. 그리고 포스트 데이터가 비어 있다면 세션은 다시 0이됩니까? – jtheman
아니요 세션 데이터를 다시 설정하지 않습니다. 세션은 여전히 이전 데이터를 전달합니다. – ammezie
''classLevel '=> $ this-> input-> post ('class_level ')는'classLevel' 키의 세션 데이터를 포스트 데이터로 설정하지만 포스트 데이터가 비어 있으면 세션을 리셋하겠습니까? – jtheman