【问题标题】:set_value retain data using callback in codeigniterset_value 在 codeigniter 中使用回调保留数据
【发布时间】:2014-09-08 06:31:44
【问题描述】:

嗨,我有这个注册表单,我正在添加一个具有 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" />

非常感谢任何帮助

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    如果您的回调返回布尔值 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;
       }
    }
    

    【讨论】:

    • 嗨,谢谢,我知道了。我刚刚添加了 else return true;和你的代码一样
    【解决方案2】:

    你可以传递参数用户名来查看

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-06
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      相关资源
      最近更新 更多