В этой небольшой статье мы поговорим о валидации полей с датой. Для валидации будем использовать библиотеку Form Validation и собственную функцию, так как данная библиотека поддерживает обратные вызовы что позволяет расширить класс валидации собственными функциями.

Дополнительную информацию по использованию библиотеки Form Validation можно почерпнуть из официальной документации на сайте Codeigniter.com.

Давай те сначала рассмотрим контролер, в который будет подгружаться класс Form Validation и описаны правила валидации.

// Включаем класс валидации
$this->load->library('form_validation');
 
// Создаем правило, обратите внимание на callback_valid_date
$this->form_validation->set_rules('date', 'дату счета в формате YYYY-MM-DD', 'required|max_length[10]|callback_valid_date');
 
// Создадим сообщение об ошибке
$this->form_validation->set_message('valid_date', 'Поле дата счета необходимо заполнять в формате YYYY-MM-DD');
 
// Оформим вывод сообщения об ошибке
$this->form_validation->set_error_delimiters('
<div class="alert alert-error">', '</div>
');
 
if ($this->form_validation->run() == false){
// Если произошла ошибка то вернем сообщение в наше представление у меня это add_document в под папке form у вас тут должно быть указано представление в котором находится форма и вернется сообщение об ошибке
$this->load->view('form/add_document', $data);
}
else {
// Если проверка прошла успешно
}

Теперь нам надо добавить свою функцию которая будет проверять поле с датой, сделаем это.

function valid_date($str) {
if ( ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $str) )
{
$arr = split("-", $str);
$yyyy = $arr[0];
$mm = $arr[1];
$dd = $arr[2];
return ( checkdate($mm, $dd, $yyyy) );
}
else
{
return FALSE;
}
}

Теперь давайте перейдем к представлению с формой.

$date = array('name' => 'date', 'id' => 'date', 'maxlength' => '32', 'size' => '50');
print form_label('Дата заключения', 'date');
print '
<div class="input">';
print form_input($date);
print '</div>
';
print validation_errors();

У меня поле с датой создано с помощью класса Form у Вас оно может быть создано так же или по старинке с помощью HTML. Главное чтобы название поля было date и было место, куда выводятся сообщения об ошибках.

print validation_errors();

В случае ошибки пользователь получит сообщение.

Вот так достаточно просто можно организовать проверку нужных вам полей с датой.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь