Сейчас про валидации форм мы можем добавлять ошибки при помощи валидаторов, но не всегда при проверке мы должны получать ошибки, иногда, например, при динамической валидации(когда возможное значение одного поля зависит от другого), нужно просто предупредить пользователя о том что то или иное поле имеет определённое ограничение, это не ошибка, а скорее предупреждение дающее пользователю шанс не допустить ошибки.
Возможно стоит добавить ещё один уровень предупреждений, не только ошибки, но и оповещения.
Notices и валидация форм.
Re: Notices и валидация форм.
Дык есть же подсказки
Код: Выделить всё
<p class="hint">
Hint: You may login with <tt>demo/demo</tt> or <tt>admin/admin</tt>.
</p>
Re: Notices и валидация форм.
Есть, но они не динамические, тоесть добавляются во вью, а не при валидации формы. Представь ситуацию:
Есть форма - создание заявки.
В зависимости от типа заявки мы должны выводить коммиссию.
При этом это желательно сделать при помощи валидатора.
Очевидное решение:
В валидаторах разрешить создавать не только ошибки при помощи addError но и предупреждения addNotice.
После чего просто вывести notice под полем с выбором типа заявки.
Чем не подходит обычная подсказка:
1) Отсутствие динамичности.
2) Для добавления динамики нужно писать JS(а иногда формула рассчёта довольно сложна, но уже реализована на PHP для server-side валидации).
Чем не подходит AJAX запрос:
1) Зачем делать ещё один запрос если всё равно будет проходить валидация.
2) Обычно естественнее выглядит привязывать такую проверку в виде валидатора а не создавать отдельный экшн для неё.
Сейчас примерно то же самое реализовал для себя, но думаю что удобно было бы иметь из коробки поддержку этой возможности.
Есть форма - создание заявки.
В зависимости от типа заявки мы должны выводить коммиссию.
При этом это желательно сделать при помощи валидатора.
Очевидное решение:
В валидаторах разрешить создавать не только ошибки при помощи addError но и предупреждения addNotice.
После чего просто вывести notice под полем с выбором типа заявки.
Чем не подходит обычная подсказка:
1) Отсутствие динамичности.
2) Для добавления динамики нужно писать JS(а иногда формула рассчёта довольно сложна, но уже реализована на PHP для server-side валидации).
Чем не подходит AJAX запрос:
1) Зачем делать ещё один запрос если всё равно будет проходить валидация.
2) Обычно естественнее выглядит привязывать такую проверку в виде валидатора а не создавать отдельный экшн для неё.
Сейчас примерно то же самое реализовал для себя, но думаю что удобно было бы иметь из коробки поддержку этой возможности.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Notices и валидация форм.
По-моему AJAX+Action тут логичнее т.к. если всё заполнили верно, будет сабмит и нотис показывать будет уже негде.
Нравится Yii? Давайте сделаем его лучше!.
Re: Notices и валидация форм.
Разве? Если всё заполнено верно то и ошибок не будет) Как альтернатива может быть уровень ошибок, тоесть при добавлении указываем тип, от INFO до ERROR(в принципе отличие будет лишь в отображении, в назначаемом выводу классе). Хотя может это и больше моя локальная надобность, из за специфики проекта, просто подумалось что было бы удобнее, в любом случае решать команде фреймворка)
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Notices и валидация форм.
Ну так notice разве не должен вываливаться по ходу заполнения формы?
Нравится Yii? Давайте сделаем его лучше!.
Re: Notices и валидация форм.
Должен, из за чего весь сыр бор)
Дело собственно лишь в том что аяксовую валидацию хотелось сгруппировать в один запрос(раз уж он отправляется и проверяет форму, почему бы не заставить его проверить ещё и предупреждения), посмотрел на систему оповещения фреймворка и подумалось, что по сути, это тоже валидация только немного иного рода, поэтому были переопределены классы CActiveRecord и CActiveForm, в первом были добавлены методы добавляющие предупреждение, а во втором чуть изменена валидация(сейчас у меня валидаторы могут добавлять notice или error).
Дело собственно лишь в том что аяксовую валидацию хотелось сгруппировать в один запрос(раз уж он отправляется и проверяет форму, почему бы не заставить его проверить ещё и предупреждения), посмотрел на систему оповещения фреймворка и подумалось, что по сути, это тоже валидация только немного иного рода, поэтому были переопределены классы CActiveRecord и CActiveForm, в первом были добавлены методы добавляющие предупреждение, а во втором чуть изменена валидация(сейчас у меня валидаторы могут добавлять notice или error).
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Notices и валидация форм.
По-моему всё-таки валидация — это валидация. Либо ошибки, либо пройдёт.
Нравится Yii? Давайте сделаем его лучше!.
Re: Notices и валидация форм.
Ясно. Ну да, возможно это более естественный подход.