php – 刷新时,重复数据插入到codeigniter中的数据库中

我使用$this-> db-> insert()将数据插入到我的表中.成功插入数据后,必须显示消息,也不应再次插入数据.

控制器:

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作为视图文件.不在任何其他文件中.

我的逻辑是:

例如:我有一张学生桌,我将存储学生姓名和标记,如名称,m1,m2,m3.现在我想添加标记,如果添加标记我想显示状态.刷新页面时不应发生重复插入.学生姓名和商标相似.我想单独用PHP做.

解决方法:

目前,没有选项将状态(成功,错误)消息传递到概述页面(或所需页面).

使用$_SESSION保存值并从会话中检索值.

显示状态消息并避免重复条目,代码如下:

控制器:

if (isset($_POST['save'])) {
    $result = $this->home->insertEntry();
    $message = ($result > 0) ? 'saved' : 'Not';
    $this->session->set_userdata('message', $message);
    //redirect, avoid duplicate entries
    redirect('HomeController');
}

视图:

<div class="container sampleForm"><?PHP
    if($this->session->has_userdata('message')){
        echo $this->session->message;
        $this->session->unset_userdata('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>

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...