Php CodeIgniter中的帐户编辑
我试图编辑用户帐户,但当我加载视图时,它不会显示用户的默认帐户信息。下面是我的模型视图和控制器。任何帮助都将不胜感激。 我有一个包含所有用户信息的数据库。所以我想检索它并执行一个更新函数 控制器Php CodeIgniter中的帐户编辑,php,codeigniter,Php,Codeigniter,我试图编辑用户帐户,但当我加载视图时,它不会显示用户的默认帐户信息。下面是我的模型视图和控制器。任何帮助都将不胜感激。 我有一个包含所有用户信息的数据库。所以我想检索它并执行一个更新函数 控制器 /** * This function is used load user edit information * @param number $userId : Optional : This is user id */ function editOld($user
/**
* This function is used load user edit information
* @param number $userId : Optional : This is user id
*/
function editOld($userId = NULL)
{
if($userId == null)
{
redirect('pages/settings');
}
$data['userInfo'] = $this->settings_model->getUserInfo($userId);
$data['title'] = 'Settings';
$this->load->view('templates/header');
$this->load->view('pages/settings', $data);
$this->load->view('templates/footer');
}
/**
* This function is used to edit the user information
*/
function editUser()
{
$this->load->library('form_validation');
$userId = $this->session->userdata('user_id');
$this->form_validation->set_rules('name','Full Name','trim|required|max_length[128]|xss_clean');
$this->form_validation->set_rules('email','Email','trim|required|valid_email|xss_clean|max_length[128]');
$this->form_validation->set_rules('username','Username','trim|required|xss_clean|min_length[3]');
$this->form_validation->set_rules('birthday','Birthday','required|xss_clean');
$this->form_validation->set_rules('gender','Gender','required|xss_clean');
$this->form_validation->set_rules('mobile','Mobile Number','required|min_length[9]|xss_clean');
if($this->form_validation->run() == FALSE)
{
$this->editOld($userId);
}
else
{
$name = $this->input->post('name');
$username = $this->input->post('username');
$email = $this->input->post('email');
$bio = $this->input->post('bio');
$mobile = $this->input->post('mobile');
$birthday = $this->input->post('birthday');
$gender = $this->input->post('gender');
$userInfo = array();
if(empty($password))
{
$userInfo = array('email'=>$email, 'username'=>$username, 'name'=>$name,
'mobile'=>$mobile, 'bio'=>$bio, 'birthday'=>$birthday, 'gender'=>$gender, 'updatedBy'=>$userId, 'updatedDtm'=>date('Y-m-d H:i:s'));
}
else
{
$userInfo = array('email'=>$email, 'username'=>$username, 'name'=>$name,
'mobile'=>$mobile, 'bio'=>$bio, 'birthday'=>$birthday, 'gender'=>$gender, 'updatedBy'=>$userId, 'updatedDtm'=>date('Y-m-d H:i:s'));
}
$result = $this->settings_model->editUser($userInfo, $userId);
if($result == true)
{
$this->session->set_flashdata('success', 'Profile updated successfully');
}
else
{
$this->session->set_flashdata('error', 'Profile update failed');
}
redirect('pages/settings');
}
}
型号
function getUserInfo($userId)
{
$this->db->select('id, name, email, username, mobile, birthday, gender, bio');
$this->db->from('users');
$this->db->where('isDeleted', 0);
$this->db->where('id', $userId);
$query = $this->db->get();
return $query->result();
}
/**
* This function is used to update the user information
* @param array $userInfo : This is users updated information
* @param number $userId : This is user id
*/
function editUser($userInfo, $userId)
{
$this->db->where('id', $userId);
$this->db->update('users', $userInfo);
return TRUE;
}
查看
<?php
$userId = '';
$name = '';
$email = '';
$mobile = '';
$username = '';
$birthday = '';
$bio = '';
if(!empty($userInfo))
{
foreach ($userInfo as $uf)
{
$userId = $uf->id;
$name = $uf->name;
$email = $uf->email;
$mobile = $uf->mobile;
$username = $uf->username;
$birthday = $uf->birthday;
$bio = $uf->bio;
}
}
?>
<form class="col s12" role="form" action="<?php echo base_url() ?>settings/editUser" method="post" id="editUseri" role="form">
<div class="row">
<div class="input-field col s12">
<input id="name" type="text" class="validate" name="name" value="<?php echo $name; ?>">
<input type="hidden" value="<?php echo $userId; ?>" name="userId" id="userId" />
<label for="name">Full Name</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="username" type="text" class="validate" data-length="15" name="username" value="<?php echo $username; ?>">
<label for="username">Username</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="email" type="text" class="validate" name="email" value="<?php echo $email; ?>">
<label for="email">Email</label>
</div>
</div>
<div class="box-footer">
<input type="submit" class="btn btn-primary" value="Submit" />
<input type="reset" class="btn btn-default" value="Reset" />
</div>
</form>
尝试添加:
$this->db->last\u query()
来检查查询的结果。我认为它需要设置
$query->result();
$this->db->set()
处理更新查询的数据部分尝试添加:
$this->db->last\u query()
来检查查询的结果。我认为它需要设置
$query->result();
$this->db->set()
您未选中用户会话是否设置
从
if($this->form_validation->run() == FALSE)
{
$this->editOld($userId);
}else{
....
....
}
到
仅在调试错误时才尝试此操作
您未选中用户会话是否设置
从
if($this->form_validation->run() == FALSE)
{
$this->editOld($userId);
}else{
....
....
}
到
您只需将详细信息传递到会话中并使用会话来显示即可。记住更新会话
value="<?php echo $this->session->userdata('username'); ?>"
value=“”
如果对您有效,请将其标记为正确。您只需将详细信息传递到会话并使用会话显示即可。记住更新会话
value="<?php echo $this->session->userdata('username'); ?>"
value=“”
如果对您有效,请标记为正确。我应该在哪里添加它?就在模式下方:函数editUser($userInfo,$userId){$this->db->where('id',$userId);$this->db->update('users',$userInfo);echo$this->db->last_query();exit;return TRUE;}$query->result_array()代码>为了什么?他只想从数据库中提取一行,那么为什么需要使用result\u array()
?尝试在where子句中传递数组格式:“$this->db->where(array('id'=>$userid);”如果正在工作,请告诉我们mark Accepted您是否能够在Codeigner中更新代码。现在,您到底需要在其中添加什么。我应该在何处添加它?就在模式下面:函数editUser($userInfo,$userId){$this->db->where($id',$userId);$this->db->update($users',$userInfo)echo$this->db->last_query();exit;return TRUE;}$query->result_array();
为什么?他只想从数据库中提取一行,那么为什么需要使用result_array()
?尝试在where子句中传递数组格式:$this->db->where(array('id'=>userid);“如果工作正常,请告诉我们mark Accepted您是否能够更新Codeigner中的代码。现在,您到底想要什么。