set_value使用codeigniter中的回调来保留数据

时间:2014-09-08 06:31:45

标签: php codeigniter

嗨,我有这个注册表格,我正在添加一个具有set_value的值,以便在我点击提交按钮时数据将保留。我正在添加一个回调函数,如果数据库中已经存在,将检查用户名。我注意到的是我的set_value不起作用所以数据不会保留。当我删除用户名中的回调时,set_value将起作用。我怎么能这样做?我的set_value将保留。这是我的代码

$this->form_validation->set_rules('username', 'Username', 'required|min_length[4]|max_length[12]|callback_check_username');

和我的回调代码

  public function check_username($username){
    $username = $this->input->post('username');
    $result = $this->um->username($username);
    if($result){
      $this->form_validation->set_message('check_username', 'Username Already Exists.');
      return false; 
    }
  }

我的观点有set_value

<input type="text" class="form-control" value="<?php echo set_value('username');?>" name="username" />

非常感谢任何帮助

2 个答案:

答案 0 :(得分:0)

您可以将参数用户名传递给视图

if($this->form_validation->run() == false)
{
  $data['username'] = $this->input->post('username');
  $this->load->view('yourviewname',$data);
}

答案 1 :(得分:0)

如果你的回调返回布尔值以外的任何值TRUE / FALSE,则假定数据是你新处理的表格数据。

public function check_username($username)
{
   $username = $this->input->post('username');
   $result = $this->um->username($username);
   if($result)
   {
       $this->form_validation->set_message('check_username', 'Username Already Exists.');
       return FALSE;
   } else {
       return TRUE;
   }
}