表单提交后,任意数量的刷新都会在db中多次存储数据。
即。提交后!empty($_POST)
始终为真。
如何在不重定向网页/网址的情况下停止提交。因为我想留在同一页面。
我正在使用form_open()和form_submit()i codeigniter。
<?php echo form_open("",array('method' => 'POST'));?>
/* form fields */
'发送','价值'=&gt; '发送通知',“名称”=&gt;“发送通知”)); ?&GT;
`if (!empty($_POST['send_notification'])) {
/* validation rules & data*/
if ($this->form_validation->run() == TRUE){
$this->model->insert($data);
}
}`
如何停止重复记录插入,我尝试过,unset($_POST)
,isset(),if($ this-&gt; input-&gt; post()),似乎没有任何效果。
答案 0 :(得分:1)
在插入函数后,只需执行redirect();
到相同的年龄。
答案 1 :(得分:0)
这对我有用。它可能会帮助某人
控制器文件:
public function success()
{
$_SESSION['txnid'] = $this->input->post('txnid');
$this->bind->set_order();
$this->load->view('success');
}
模型文件:
public function set_order()
{
$txnid = $_SESSION['txnid'];
$qry = $this->db->query("SELECT * from orders where transaction_id = '$txnid'");
$result = $qry->result_array();
if($qry->num_rows() == 0 )
{
//add to database here
}
else
{
// do nothing
}
}
我在提交时将txnid添加到数据库。因此,如果它尝试重新提交,它会检查txnid是否已经存在。