Как в 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>

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

  • трансферы футбола: к записи Спасибо) работает!))) помогло »
  • Alex: к записи Спасибо за инфу, друг. »
  • Kuzma: к записи Да он закрывает прелоудер грузится но не убирается »
  • Администратор: к записи Сделайте, как пишет MODX - проверьте параметры с с »
  • Николай: к записи Во время установки во время выполнения п.4 вылета »
  • PHPt: к записи А это разве не то? »
  • Naklz: к записи При вставке второго всплывающего окна на странице, »

Статистика спама

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