php - 在 Codeigniter 中更新用户详细信息

标签 php mysql codeigniter

我已经根据自己的知识编写了代码,使用 Codeignitor 更新用户详细信息,但当我单击更新按钮用户帐户页面时没有任何反应。任何人都可以通过使用下面的代码来帮助我找到问题和解决方案:

Controller :

public function update_userdetail() {
    // Load form helper and validation library
    $this->load->helper('form');
    $this->load->library('form_validation');
    // Update field validation
    $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]|is_unique[users.username]', array('is_unique' => 'This username already exists.'));
    $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[users.email]', array('is_unique' => 'This email already exists.'));
    if($this->form_validation->run() == false) {
        redirect('user/account');
    } else {
        // Set variable from Form
        $user_id    =   $this->input->post('user_id');
        $username   =   $this->input->post('username');
        $email      =   $this->input->post('email');
        if($this->user_model->update_user($user_id, $username, $email)) {
            $this->session->set_flashdata('notice','<div class="success">Your details updated Successfully!</div>');
            redirect('user/account');
        } else {    
            $this->session->set_flashdata('msg', '<div class="error">Problem with update your detail!</div>');
            redirect('user/account');
        }
    }
}

型号:

public function update_user($username, $email, $user_id) {  
        $data = array (
            'username'   => $username,
            'email'      => $email,
            'updated_at' => date('Y-m-j H:i:s'),
        );
        $this->db->where('id', $user_id);
        $this->db->update('users', $data);
        return; 
    }

表格:

<?php 
    $username   = ($this->session->userdata['username']);
    $email      = ($this->session->userdata['email']);
    $user_id    = ($this->session->userdata['user_id']);
    ?>
    <h3>Update detail</h3>
    <?php echo $this->session->flashdata('msg'); ?>
    <?php echo form_open(); ?>
    <input type="text" id="user_id" name="user_id" value="<?php echo $user_id; ?>">
    <div>
    <input type="text" id="username" name="username" placeholder="Username" value="<?php echo $username; ?>">
    <small class="error-text"><?php echo form_error('username'); ?></small>
    </div> 
    <div>
    <input type="email" id="email" name="email" placeholder="Enter your email" value="<?php echo $email; ?>">
    <small class="error-text"><?php echo form_error('email'); ?></small>
    </div>
    <div><?php echo form_submit('submit', 'Submit'); ?></div>
    <?php echo form_close(); ?>

最佳答案

您需要从 autoload.php 文件加载表单助手类:

位置:(application/config/autoload.php)

$autoload['helper'] = array('form');

第二个解决方案是在 Controller 的构造函数中加载表单助手。

public function __construct()
{
    parent::__construct();
    $this->load->helper('form');
}

关于php - 在 Codeigniter 中更新用户详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36260733/

相关文章:

mysql - UNHEX 和 X (MySQL) 的区别

css - codeigniter Controller 和 controller/之间有什么区别?

php - Codeigniter 帮助 - Controller 中的事件记录和循环

php - 发送的电子邮件中显示的 HTML 代码

php - 上传并调整 Png 大小会生成黑色背景图像

php - 使用 php 发送邮件并转义 hotmails 垃圾文件夹

mysql - 如何在连接和排序依据中更新 sql

php - 如何在 Twig 中设置多维数组?

具有完整架构和有限数据的 MySQL 数据库转储

php - 使用 PHP 从数据库中检索后汇总值