В 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; } ?>
Все.
Свежие комментарии