在表单验证中无法使用函数回调访问与您的字段名称相对应的错误消息

时间:2019-03-31 05:49:47

标签: php codeigniter validation continuous-integration

我正在创建名为check_nim的表单验证,但是当我在表单验证中添加回调时,出现了无法访问与您的字段名称Nomor Induk Mahasiswa相对应的错误消息的错误。(p_nim),

这是我的代码:

控制器user.php

  function daftar_act(){
    $nim = $this->input->post("nim");
    $nim = $this->security->xss_clean($nim);

    function check_nim($nim){
      if($this->db->query("SELECT * FROM akun WHERE nim ='$nim'")->num_rows() > 0){
         $this->form_validation->set_message('check_nim','NIM sudah terdaftar.');
         return false;
      }
      else{
         return true;
      }
    }

    $this->form_validation->set_rules("nim","Nomor Induk Mahasiswa","required|trim|min_length[8]|max_length[8]|callback_check_nim");

这是我的看法

daftar.php

<form action = "<?php echo base_url().'user/daftar_act'; ?> method="post">
   <div class="form-group">
     <label>Nomor Induk Mahasiswa</label>
     <input type="number" name = "nim" class="form-control">
     <?php echo form_error("nim"); ?>
   </div>
   <div class="form-group">
     <button type="submit" class="btn btn-sm btn-primary" name="daftar"> Daftar Akun </button>
   </div>
</form>

1 个答案:

答案 0 :(得分:0)

我认为您可能没有为回调check_nim设置表单验证错误消息。您需要使用回调函数名称来设置正确的错误消息,如下所示:

function check_nim($str)
{
    if ($str == 'test')
    {
        $this->form_validation->set_message('check_nim', 'The {field} field can not be the word "test"');
        return FALSE;
    }
    else
    {
        return TRUE;
    }
}