Validação de Formulários com Ajax e PHP


Eu administro vários portais que são constantemente atualizados por designers e jornalistas. Essa atualização constante acarreta na criação de diversos formulários, e mesmo radicalizando seu uso, a tarefa de validação dos dados sempre é trabalhosa e redundante.

Tentei o Dreamweaver, que tem uma rotina de validação. Mas, além do código não ser flexível, não é reutilizável. Isso cria arquivos maiores e de difícil manutenção dos códigos. Em busca de uma solução para esse problema encontrei duas classes fantásticas. Uma de validação no lado do cliente utilizando Ajax e outra no lado do servidor utilizando PHP. Ambas têm código limpo, bem estruturado e o melhor: são reutilizáveis e de fácil implantação.

O motivo de usar dois tipos de validação é simples: além da vantagem de não ter que recarregar a página caso algum dado não seja válido, a classe de validação Ajax não é obstrutiva, ou seja, se o usuário utiliza algum dispositivo que não permita o uso de javascript, o formulário não deixará de ser validado.

Validação de formulários com Ajax

Na validação no lado do cliente eu utilizo uma classe Ajax chamada Really easy field validation with Prototype. Sua implantação é muito fácil. Basta adicionar ao campo do formulário um comando no atributo class.

Exemplo de uso

Exemplo de validação de formulários em Ajax

No exemplo acima, se o usuário clicar no botão “Submit” sem preencher o campo “nome” o formulário não será enviado e uma mensagem de erro irá aparecer.

Se você quiser usar outra mensagem de erro é possível adicionado o atributo “title” ao elemento. O script automaticamente substitui a mensagem padrão pela definida. Por exemplo:

No elemento do formulário:

Segundo exemplo de validação de formulários em Ajax

E na instância do objeto:

Terceiro de validação de formulários em Ajax

Você não precisa saber nada de Ajax pra utilizar esta classe, basta adicionar os atributos corretos e personalizar as mensagens e você já tem uma validação no lado do cliente. Junto com o arquivo da classe estão outros exemplos.

Validação de formulários com PHP

Para validação no lado do servidor eu utilizo uma classe feita em PHP chamada Validate_fields Class. Defino o tipo de dado que o campo do formulário receberá, e se o campo é de preenchimento obrigatório, e a classe automaticamente efetua a validação.

Os tipos de dados validados são:

  • Texto (padrão)
  • Numeros
  • Decimais
  • Data
  • E-mail
  • URL
  • Checkboxes (e radio buttons)

Exemplo de uso

Exemplo de validação de formulários em PHP

Note que o uso é bem simples e não precisamos ficar criando funções para analisar cada campo. Também coloquei outros exemplos de uso junto aos arquivos desta classe.

Depois que passei a utilizar estas duas classes nunca mais tive dor de cabeça na hora de criar e validar formulários!

Technorati Tags: , , , ,

Informações e Links

Junte-se comentando, lendo o que os outros dizem ou colocando um link a partir do seu blog.


Outros Posts
Porque utilizo o Postnuke e não o Wordpress como CMS de grandes portais

Deixe um Comentário

Me diga o que você pensa sobre este assunto e/ou artigo.

Comentários

Muito bom o artigo Pedro, não conhecia aquela classe.

Somente uma anotação, si a primeira validação for no cliente, não e necessário utilizar Ajax, a menos que queiramos fazer a validação no servidor sem ter que submeter a pagina.

Olá, Diego!
Realmente me expressei mal. Obrigado pela observação!

É engraçado pq isso ja ta no ar há tanto tempo e ninguém nunca deve ter testado pra postar que esse ex seu do Ajax não funciona, se não for mantido na instância a parte do script, essa:
function formCallback(result, form) {
window.status = “valiation callback for form ‘” + form.id + “‘: result = ” + result;
}
ai sim implementa :
var teste = new Validation(’teste’);.. mais não da maneira que vc colocou e sim :

var teste = new Validation(’teste’, {immediate : true, onFormValidate : formCallback});

.. Se eu tiver equivocado me mostre o erro por favor.