Валидация полей с датой с помощью Form Validation на Codeigniter

В этой небольшой статье мы поговорим о валидации полей с датой. Для валидации будем использовать библиотеку 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();

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

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

Если Вам необходима качественная SEO оптимизация статьи рекомендую почитать хорошую статью на данную тему.

Здоровье и Компьютер какая между ними связь вы узнаете в этой интересной статье.

Это стоит почитать:

Поделись с друзьями:


Запись опубликована в рубрике Веб мастеру на заметку с метками , , , , , , . Добавьте в закладки постоянную ссылку.

3 комментария: Валидация полей с датой с помощью Form Validation на Codeigniter

  1. Иван говорит:

    Наверное лучше делать так:

    $datetime = strtotime($str);
    checkdate(date(‘m’,$datetime), date(‘d’,$datetime),date(‘Y’,$datetime));

  2. voffka говорит:

    Можно и так :)

  3. Уведомление: Codeigniter 2.1.0 авторизация | Блог им. Майборода Владимира | Блог им. Майборода Владимира

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>