我正在构建一个用户可以成为成员并具有最小配置文件的网站。尽管如此,在这个用户希望更新他的记录(关于我,电子邮件,电话号码等)的情况下,我想要有一个链接“编辑个人资料”。一旦点击了表单,就会加载输入字段,其中的值由该用户的数据库记录填充。他/她可以更改字段中的值,然后单击保存更改,然后将这些值提交到数据库。从codeigniter编辑数据库记录
我尝试了几次,但一直失败。下面是我试过的形式加载数据的代码:
public function load_edit()
{
//check user logged in
if(($this->session->userdata('username')!=""))
{
$data;
$result = $this->profileModel->load_user_editable_data($this->session->userdata('username'));
//check user data loaded successfully
if(isset($result))
{
//get the user information and store to $data array
foreach($result as &$value)
{
$data = $value;
}
$this->load->view('profile_edit', $data);
}
}else{
$this->login();
}
}
并更新数据库表中的记录:
public function update_edit()
{
$this->form_validation->set_rules('fullname', 'الاسم الكامل', 'isset|required|alpha_dash');
if(isset($_POST))
{
//check user logged in
if(($this->session->userdata('username')!=""))
{
//check that there are no form validation errors
if($this->form_validation->run() == FALSE)
{
$data = $this->profileModel->load_user_editable_data($this->session->userdata('username'));
$this->load->view('profile_edit', $data);
}else{
$result = $this->profileModel->update_profile($this->session->userdata('username'));
if($result){
$this->load->view('profile_edit', $result);
}
}
}
}else{
$this->load->view('error');
}
}
我面临着上面的代码执行的主要问题是,不知何故,当我执行update_edit,它总是告诉我表单验证失败,即使满足了字段的条件。
感谢提前:)
你还没有将$ data声明为数组,所以你一直覆盖它的值。 – Rooneyl