Как в eForm на MODx Evolution добавить собственную валидацию полей

В MODx Evolution для форм, использующих сниппет eForm можно задавать собственную проверку правильности введенных данных в поля этих самых форм. Если выразиться более кратко, — собственную валидацию фиелдов.

Для этого у eForm есть специальный входной параметр. Называется он eFormOnValidate. Вот как его правильно использовать:

[!anketa!]

[!eForm? 
...
&eFormOnValidate=`anketa`
...
!]

Здесь anketa — это название моего сниппета-обработчика, который будет проверять введенные пользователями данные.

 <?php
function anketa(&$fields, &$vMsg, &$rMsg) {
    global $modx;

    /*
    &$fields - (согласно документации) ассоциативный массив полей и их значений.
    &$vMsg - (согласно документации) числовой массив, состоящий из сообщений об ошибках валидации.
    &$rMsg - (согласно документации) числовой массив незаполненных обязательных полей.
    */

    // валидация поля "телефон"
    if (!empty($fields['phone']) && !preg_match("/\+7(\d{10})/", $fields['phone'])) :    
        $vMsg[3] = 'телефон должен быть указан в формате +xxxxxxxxxxx, где x  - это число';
    endif;

    return $vMsg;
}
?>

Все.

Опубликовано 11-06-2014 в 15:57


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

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

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











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты