在 Codeigniter 中刷新相同 url 时,控制器正在从一个视图重定向到另一个视图
Controller is redirecting from one view to another on refreshing same url in Codeigniter
我有 create_student 视图,它只获取学生姓名并生成自动递增主键 ID,user_info 会话在用户登录后保存,
如果存在验证错误 create_student 视图,否则会从 student_model 返回最近插入的学生 ID 和
学生详细信息的视图已打开,即 student_detail 视图。
问题出在我刷新这个 url http://localhost/MyProject/create_student/Create_Student
我从 student_detail 视图转到第一个视图,即 create_student,每次我在 student_detail 查看重复学生条目时重新加载此 url
每次都保存在数据库中。请帮助解决我的问题。
create_student Controller:
public function Create_Student() {
$this->form_validation->set_rules('student_title', 'Create Student', 'trim|required|xss_clean');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$course_name=$this->input->post('title_title');
$user_info=$this->session->userdata('user_info');
$user_id=$user_info['id'];
if ($this->form_validation->run() == FALSE)
{
$this->load->view('create_student');
}
else
{
$data=array('u_id'=>$user_id,'course_title'=>$course_name);
$result_student = $this->student_model->Create_Student($data);
if($result_course!=false)
{
$data['result'] = $result_student;
$this->load->view('student_detail',$data);
}
else
{
$this->load->view('create_student');
}
}
}
create_student View:
<?php echo form_
open('create_student/Create_Student') ?>
<?php echo validation_errors(); ?>
<input type="text" class="middle" name="student_title" class="middle"/>
<button class="middle green" name="submit" type="submit">Create Student</button>
<?php echo form_close(); ?>
Student_Model :
public function Create_Student($data) {
$this->load->database();
$this->db->insert('user', $data);
$insert_id = $this->db->insert_id();
if ($this->db->affected_rows() > 0) {
return $insert_id;
}
else
{
return false;
}
}
在 Controller 中试试这个编码
<?php create_student Controller:
public function Create_Student() {
$this->form_validation->set_rules('student_title', 'Create Student', 'trim|required|xss_clean');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$course_name=$this->input->post('title_title');
$user_info=$this->session->userdata('user_info');
$user_id=$user_info['id'];
if ($this->form_validation->run() == FALSE)
{
$this->student();
}
else
{
$data=array('u_id'=>$user_id,'course_title'=>$course_name);
$result_student = $this->student_model->Create_Student($data);
if($result_student)
{
redirect('create_student/student_details/'.$result_student);
}
else
{
$this->student();
}
}
public function student_details() {
$data['result'] = $this->uri->segment(3);
$this->load->view('student_detail',$data);
}
public function student() {
$this->load->view('create_student');
}
}
?>
URL
http://localhost/MyProject/create_student/student
我有 create_student 视图,它只获取学生姓名并生成自动递增主键 ID,user_info 会话在用户登录后保存, 如果存在验证错误 create_student 视图,否则会从 student_model 返回最近插入的学生 ID 和 学生详细信息的视图已打开,即 student_detail 视图。
问题出在我刷新这个 url http://localhost/MyProject/create_student/Create_Student
我从 student_detail 视图转到第一个视图,即 create_student,每次我在 student_detail 查看重复学生条目时重新加载此 url
每次都保存在数据库中。请帮助解决我的问题。
create_student Controller:
public function Create_Student() {
$this->form_validation->set_rules('student_title', 'Create Student', 'trim|required|xss_clean');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$course_name=$this->input->post('title_title');
$user_info=$this->session->userdata('user_info');
$user_id=$user_info['id'];
if ($this->form_validation->run() == FALSE)
{
$this->load->view('create_student');
}
else
{
$data=array('u_id'=>$user_id,'course_title'=>$course_name);
$result_student = $this->student_model->Create_Student($data);
if($result_course!=false)
{
$data['result'] = $result_student;
$this->load->view('student_detail',$data);
}
else
{
$this->load->view('create_student');
}
}
}
create_student View:
<?php echo form_
open('create_student/Create_Student') ?>
<?php echo validation_errors(); ?>
<input type="text" class="middle" name="student_title" class="middle"/>
<button class="middle green" name="submit" type="submit">Create Student</button>
<?php echo form_close(); ?>
Student_Model :
public function Create_Student($data) {
$this->load->database();
$this->db->insert('user', $data);
$insert_id = $this->db->insert_id();
if ($this->db->affected_rows() > 0) {
return $insert_id;
}
else
{
return false;
}
}
在 Controller 中试试这个编码
<?php create_student Controller:
public function Create_Student() {
$this->form_validation->set_rules('student_title', 'Create Student', 'trim|required|xss_clean');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$course_name=$this->input->post('title_title');
$user_info=$this->session->userdata('user_info');
$user_id=$user_info['id'];
if ($this->form_validation->run() == FALSE)
{
$this->student();
}
else
{
$data=array('u_id'=>$user_id,'course_title'=>$course_name);
$result_student = $this->student_model->Create_Student($data);
if($result_student)
{
redirect('create_student/student_details/'.$result_student);
}
else
{
$this->student();
}
}
public function student_details() {
$data['result'] = $this->uri->segment(3);
$this->load->view('student_detail',$data);
}
public function student() {
$this->load->view('create_student');
}
}
?>
URL
http://localhost/MyProject/create_student/student