Проверка формы в PEAR QuickForm 2

KPD

Новичок
Добрый день.

Подскажите как в QuickForm2 сделать проверку формы своей функцией?
В QuickForm это делалось легко и просто

Код:
$form->addFormRule('_validate_shipping');
и просто делаешь свою функцию.

а как это сделать во второй версии нигде не смог найти:(
 

KPD

Новичок
Спасибо.
Только чтото я совсем не могу понять как этим заменить то что было :(((
Где именно должна теперь быть функция проверки?
 

KPD

Новичок
Всё равно остаётся непонятным как реализовать то что было раньше.
Например я провёл проверку ф-ией и хочу вывести сообщение об ошибку только к одному элементу формы.
А тыт получается можно только к тем которые ты заранее прописал в классе.
А твоя ф-ия может быть либо TRUE либо FALSE, и соотв повлиять на то какое сообщение и куда будет выведено нельзя :(
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Всё равно остаётся непонятным как реализовать то что было раньше.
Например я провёл проверку ф-ией и хочу вывести сообщение об ошибку только к одному элементу формы.
А тыт получается можно только к тем которые ты заранее прописал в классе.
А твоя ф-ия может быть либо TRUE либо FALSE, и соотв повлиять на то какое сообщение и куда будет выведено нельзя :(
Хватит тупить: в setOwnerError() можно назначать любые ошибки любым элементам, а просчитать кому и куда можно в validateOwner().
 

KPD

Новичок
А пример есть?

Я использовал пример, что дан в разделе про миграцию.
И там получается что если validateOwner() возвращает FALSE, тоесть произошла какаято ошибка, то тогда выводятся сразу обе ошибки.
А как сделать чтобы в какомто одном случае выводилась одна ошибка, а в другом другая?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
А как сделать чтобы в какомто одном случае выводилась одна ошибка, а в другом другая?
PHP:
public function setOwnerError()
{
    if ($this->первыйСлучай) {
        $this->owner->getElementById('один элемент')->setError('одна ошибка');
    } elseif ($this->второйСлучай) {
        $this->owner->getElementById('другой элемент')->setError('другая ошибка');
    }
}
 

KPD

Новичок
А что вот это?

$this->первыйСлучай

откуда мы берём эти случаи?
условия проверки у нас ведь в validateOwner(), там мы проверили получили ошибку по какомуто из полю. вернули FALSE.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума

KPD

Новичок
А где запомнили? Тоесть получается надо ещё объявить переменные в которые мы сохраняем по каким полям выводить алерт?

Мда... в первой версии этого класса всё было значитально проще...
 
Сверху