Sexta-feira, 26 de setembro de 2008 às 11h00

EXT - Trabalhando com formulários

Faça o curso: jQuery na Prática

Obs: A partir deste artigo não irei mais colocar todo o código fonte dos exemplos. Ou seja, não incluo a parte HTML que insere as bibliotecas EXT e as tags DIV que o EXT renderiza. Se tiver dificuldades, veja os artigos anteriores para maiores detalhes.

Neste artigo criaremos um formulário usando os componentes do EXT. A criação de formulários é relativamente simples, desde que você aceite que os campos devam ficar um abaixo do outro, podendo ter duas colunas ou não.

Criar formulários com os campos mais distribuídos pode se tornar uma tarefa um pouco "chata", pois depende de conhecimento extra com tabelas (as mesmas tabelas do HTML..)

Então, sabemos que criar um formulário como na figura abaixo é bastante simples.

Ou

E já sabemos que criar um formulário um pouco mais complexo exige mais trabalho.

Vamos então criar o formulário mais simples. Para isso, o Ext possui um componente especial chamado Ext.FormPanel. Com ele podemos criar um formulário rapidamente, como no exemplo abaixo:
var simple = new Ext.FormPanel({
        labelWidth: 75, // label settings here cascade unless overridden
        url:´save-form.php´,
        frame:true,
        title: ´Simple Form´,
        bodyStyle:´padding:5px 5px 0´,
        width: 350,
        defaults: {width: 230},
        defaultType: ´textfield´,

        items: [{
                fieldLabel: ´First Name´,
                name: ´first´,
                allowBlank:false
            },{
                fieldLabel: ´Last Name´,
                name: ´last´
            },{
                fieldLabel: ´Company´,
                name: ´company´
            }, {
                fieldLabel: ´Email´,
                name: ´email´,
                vtype:´email´
            }, new Ext.form.TimeField({
                fieldLabel: ´Time´,
                name: ´time´,
                minValue: ´8:00am´,
                maxValue: ´6:00pm´
            })
        ],

        buttons: [{
            text: ´Save´
        },{
            text: ´Cancel´
        }]
    });

Este exemplo, retirado do site oficial do Ext, desenha o formulário da primeira figura deste artigo. Podemos perceber uma nova propriedade chamada labelWidth, que define o tamanho em pixels dos Labels do formulário.

O parâmetro defaults atribui o parâmetro width:230 a todos os campos do formulário que estão definidos na propriedade items.

Quando definimos os campos, podemos inserir textfields automaticamente, pois a propriedade defaultType definiu isso. Para qualquer outro tipo de campo, temos que criar uma instância conforme foi feito com o Ext.form.TimeField.

Criando um formulário através do FormBuilder

Agora que você conhece o básico, tenho certeza que quer saber quais são os componentes disponíveis do EXT e como desenhá-los de maneira mais fácil. Existe uma ferramenta muito legal criada por Christophe Badoit e que está disponível em:

http://tof2k.com/ext/formbuilder/

Acessando este endereço, você obtém uma tela como a mostrada abaixo.

Com esta ferramenta você pode arrastar os campos para o centro da tela e criar o formulário com mais facilidade. Arraste inicialmente um componente FormPanel e depois arraste os componentes de formulário.

Para ver o código do formulário gerado, basta clicar no botão Show/Edit JSON.

Bom, eu vou parar por aqui, e deixar vocês brincarem com o FormBuilder. No próximo artigo iremos falar um pouco mais do FormPanel.

13 comentários

 Andre Luz da Silva
02/10/2008 09h24

Show

Adorei estou cada vz mais estudando o JSON, o JQuery e agora o EXT , adoro client side adorei a matéria está de parabéns, mal posso esperar por mais novidades

abraços!

 Daniel Schmitz
03/10/2008 13h43

Outro editor

Pessoal, aproveitando a matéria achei outro editor EXT.
http://www.projectspace.nl/

 Robson Florentino da Silva
06/10/2008 14h37

Gostaria de saber mais

Olá Daniel, estou acompanhando suas materias sobre o Extjs, gostei muito, e já estou tentando uma implementação nos projetos onde trabalho, estou usando o padrão de namespaces, para organizar o código, porém não consigo achar uma forma de atraves de um link atualizar o conteúdo de um panel com um form por exemplo. Como posso fazer isso, Você poderia também criar um exemplo de arquitetura usando Ext e PHP? Aguardo uma respota. Valeu, Ótimo Post. Adorei mesmo.

 Daniel Schmitz
14/10/2008 22h41

Olá,

eu já estou preparando um exemplo deste tipo ok

 Anderson Alves de Almeida
14/10/2008 12h38

Alguns exemplos não funcionaram comigo

Como vai Daniel, realmente essas suas matérias sobre o EXT estão nota 10, estou muito interessado nessa nova ferramenta e devo isso a você, muito obrigado mesmo, porém estou com algumas dificuldades para executar seus exemplos, to fazendo tudo desde a primeira matéria e até agora só o que funcionou foi o 1º exemplo, todos os outros me retornam apenas uma pagina em branco, o detalhe é que mesmo o ctrl-C ctrl-V dos seus exemplos causa isto, e os exemplos próprios que veem junto com o EXT funcionam normalmente. Estou executando seus exemplos dentro do diretório correto.

 Daniel Schmitz
14/10/2008 22h39

Olá Anderson. Com certeza algo de errado esta acontecendo. Você conhece a ferramenta firebug? acessa ae: http://getfirebug.com/

Com ela você pode encontrar mais facilmente o erro e postar para nós. Lembre-se que o firebug é um plugin do firefox, entao vc deve ter ele ok.

Me fale dos seus avanços ae!

 Anderson Alves de Almeida
15/10/2008 22h50

Daniel, obrigado pela dica do firebug, com ele encontrei o erro, o erro acontecia quando eu copiava o código da pagina do imasters para meu editor, ao invés de aspas simples o que vem é um acento, e isso gerava o erro, assim que os sibstitui tudo funcionou perfeitamente.

 Daniel Schmitz
14/10/2008 23h41

Artigo quase pronto

Pessoal, eu fiquei sem internet por 2 semanas .. então o próximo artigo está atrasado. Mas vou tentar liberar o artigo até sexta agora para que até segunda o pessoal do iMasters possa colocar o artigo no ar. valew!

 Jojo Jaja
18/11/2008 17h19

oi galera ve o que eu achei sobre savascript

oi galera ve o que eu achei sobre savascript

 Leandro Santos
18/11/2008 17h23

Duvida em um trabalho

Ola Daniel tudo ok, é o seguinte acabei de ingressar nest area de javascript e etstou achando bem interessante, estou com uma divida em dos meus trabalhos e gostaria de lhe enviar para seu e-mail mais procurei no site e nao o encontrei, se puder me responder para que eu possa lhe enviar o arquivo, se puder me ajudar ficarei grato professor abraços...leandro_disco@terra.com.br

 Jojo Jaja
18/11/2008 17h23

oi pessoal ve o que eu encontrei sobre javascript

http://portalvideoaulas.com//play.php?vid=139

 Jojo Jaja
18/11/2008 17h24

oi pessoal ve o que eu encontrei sobre javascript

http://portalvideoaulas.com//play.php?vid=139

 Max Oliveira
11/04/2009 15h37

Javascript

Para quem gosta de brincar com javascript

http://pedromenezes.com/os-40-melhores-plugins-da-jquery-para-facilitar-a-vida-do-desenvolvedor-web

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Daniel Schmitz trabalha com desenvolvimento web desde 1998 e atualmente dedica-se ao Flex sendo autor de livros e divulgando conteúdo em www.flex.etc.br

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.