这是我的插入功能。它可以很好地插入数据并在另一个视图中显示数据。但它有一个问题。如果我刷新它再次插入的视图页面。我想防止再次插入刷新页面。 plzzzzzzzzzzzzz
视图
<html>
<head></head>
<body>
<form method="post" action="insert_controller">
<input type="text" placeholder="plate number" name="plate">
<input type="text" placeholder="maker" name="maker">
<input type="text" placeholder="model" name="model">
<input type="text" placeholder="year" name="year">
<input type="text" placeholder="color" name="color">
<input type="text" placeholder="drive" name="drive">
<input type="text" placeholder="phone" name="phone">
<input type="text" placeholder="name" name="name">
<input type="text" placeholder="city" name="city">
<input type="text" placeholder="country" name="country">
<input type="submit" name="submit">
<a >cancel</a>
</form>
</body>
</html>
这是我的控制器。插入数据后,结果很好,进入了search_view页面。但是当我刷新search_view页面时,它再次插入数据。我想在刷新search_view页面时再次避免插入数据。
控制器
class car extends CI_Controller {
public function insert_controller() {
$data['search']=$this->m->insert_model();
$this->load->view('searching_view',$data);
}
}
它是model .it插入数据并从数据库中获取数据并发送结果。
模型
class add_model extends CI_Model {
public function insert_model()
{
if ($this->input->post('submit'))
{
date_default_timezone_set('Asia/Karachi');
$date=date('g:i A').' on '.date('F d,Y');
// echo "<pre>";
// die(print_r($date, TRUE));
$plate = $this->input->post('plate');
$phone = $this->input->post('phone');
$this->db->select('*');
$this->db->from('car');
$this->db->where('plate', $plate);
$this->db->or_where('phone', $phone);
$d = $this->db->get();
if ($this->db->affected_rows()>0)
{
redirect('http://localhost/Ci/index.php/Car/error_message2');
}
else
{
$arr= array(
'plate' => $this->input->post('plate'),
'maker' => $this->input->post('maker'),
'model' => $this->input->post('model'),
'year' => $this->input->post('year'),
'color' => $this->input->post('color'),
'drive' => $this->input->post('drive'),
'phone' => $this->input->post('phone'),
'name' => $this->input->post('name'),
'city' => $this->input->post('city'),
'country'=> $this->input->post('country'),
'date' => $date
);
$this->db->insert('car', $arr);
$id= $this->db->insert_id();
// fetching
$this->db->select('id,plate,maker,model,year,color,drive,phone,name,city,country');
$this->db->from('car');
$this->db->where('id', $id);
$d = $this->db->get();
return $d->result();
}
}
}
}
答案 0 :(得分:2)
通常,您的浏览器应该在发送另一个POST请求之前发出警告。但如果你想完全避免这种可能性,你可以做以下事情:
第二个解决方案在尝试重新发送数据时会返回错误,因此不应该在没有重定向的情况下使用它,因为用户只会在重新加载时出错。