Validação de Formulários
Classe FormValidation com suporte a validação client-side via AJAX. Digite nos campos para validar em tempo real.
Testar Validação
Regras Aplicadas
| Campo | Regras |
|---|---|
name | requiredmin:3 |
email | requiredemail |
age | requiredint |
Eventos ao Vivo
- input — valida ao digitar (com debounce 250ms)
- blur — valida ao sair do campo
- submit — valida todos os campos via AJAX
Exemplo de Código
Controller
<?php
use Blumiga\formvalidation\FormValidation;
$v = new FormValidation();
$v->rules([
'name' => 'required|min:3',
'email' => 'required|email',
'age' => 'required|int',
]);
if (requestPOST()) {
$isAjax = ($_SERVER['HTTP_X_REQUESTED_WITH'] ?? '') === 'XMLHttpRequest';
if ($isAjax) {
if (inputPOST('_formvalidation_field')) {
$v->check(inputPOST('_formvalidation_field'));
} elseif ($v->validate()) {
json(['success' => 'OK!']);
} else {
json(['errors' => $v->errors()]);
}
return;
}
if (!csrf_verify()) {
flash_set('error', 'CSRF inválido.');
redirect('/validation');
}
if ($v->validate()) {
flash_set('success', 'OK!');
}
} View
<?= FormValidation::form('POST', '/validation') ?>
<?= csrf_field() ?>
<input name="nome" formvalidation-live="input">
<?= FormValidation::dataError('fv-error', 'nome') ?>
<button type="submit">Validar</button>
<?= FormValidation::endForm() ?>
<?= FormValidation::dataSuccess('fv-success') ?>
<?= FormValidation::scripts() ?>