#php #codeigniter #validation #continuous-integration
#php #инициатор кодирования #валидация #непрерывная интеграция #codeigniter #проверка
Вопрос:
я создаю свою проверку формы с именем check_nim, но когда я добавляю обратный вызов в проверке формы, я получаю ошибку, из-за которой не удается получить доступ к сообщению об ошибке, соответствующему имени вашего поля Nomor Induk Mahasiswa.(check_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. Пожалуйста, покажите нам весь ваш метод daftar_act и мы хотим видеть эту строку в начале метода $this-> load-> library(‘form_validation’);
Ответ №1:
Я думаю, вы, возможно, не устанавливаете сообщение об ошибке проверки формы для вашего обратного вызова 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;
}
}