我使用$this->db->insert()
將數據插入到表中。當數據插入成功時,消息必須顯示,數據也不應再次插入。刷新時,重複的數據插入到codeigniter中的數據庫中
控制器:
public function index($message = '') {
$this->load->template('homePage');
}
/**
* Insert functionlaity
*/
public function insert() {
if ($_POST['save']) {
$result = $this->home->insertEntry();
$data['message'] = ($result > 0) ? 'saved' : 'Not';
redirect('HomeController',$data);
}
$this->load->view('homePage');
}
型號:
public function insertEntry()
{
$this->name = $_POST['name'];
$this->email = $_POST['email'];
$this->db->insert('users', $this);
return $this->db->affected_rows();
}
查看:
<div class="container sampleForm"><?php
echo isset ($message) ? $message : '';
echo form_open(get_class(get_instance()) . '/insert')
. form_label('id') . form_input('id', isset($query['id']) ? $query['id'] : '', 'class="form-control"') . br()
. form_label('name') . form_input('name', isset($query['name']) ? $query['name'] : '', 'class="form-control"') . br()
. form_label('email') . form_custom_input('email','email', isset($query['email']) ? $query['email'] : '', 'class="form-control"') . br()
. form_submit('save', 'save', 'class="btn btn-primary"')
. form_close();
?> </div>
我的問題是,如果我能顯示身份,則數據插入每一個刷新否則狀態不會顯示。
這一切都應該在我的HomeController.php作爲控制器,Home.php作爲模型和homePage.php作爲視圖文件。不在任何其他文件中。
我的邏輯是:
例如:我有一個學生的表中我將要以學生的名稱和標記存儲像name, m1, m2, m3
。現在我想添加標記,如果它添加我想顯示狀態。刷新頁面時不應該發生重複插入。學生的名字和標記是相似的。我想單獨使用php。
我不能明白你的問題,是否當你重定向實際發生的事情時,表單會再次提交併插入? – Neal
對於我來說,數據必須插入一次,狀態必須在插入後顯示。 – Jagadeesh
好的,爲什麼不嘗試通過Ajax提交表單,這是我通常在表單中執行的操作,這樣您就可以輕鬆地驗證它們,然後基於你的函數在控制器的響應,你會決定是否顯示一個成功的消息或不使用jQuery和JavaScript – Neal