Blog CataBits

sexta-feira, 12 de março de 2010   (Todos os horários em UTC)
G Y Q

Personalizando formulários do Docs

Por Luferat em 22/03/2009 às 15:17.

Personalizando formulários do Docs

Formulários são recursos indispensáveis para qualquer site web, principalmente com a necessidade crescente de interatividade, onde os visitantes sempre procuram formas de interagir com a web. Para quem cria e hospeda sites, é essencial ter um retorno do visitante, seja por um formulário de contatos, um cadastro ou uma simples enquete.

Criar um formulário em HTML não é nada complicado, basta usar meia-dúzia de tags simples. O problema está em processar os dados que são enviados pelo visitante. Não pega nada bem um formulário tentar abrir o programa de e-mail do cliente para enviar os dados, não é?

Quem domina linguagens como PHP, Perl, ASP e JAVA, entre outras, se sai bem criando pequenos scripts que fazem o trabalho de forma satisfatória e personalizada, mas os amadores, hobistas, bloggers, o pessoal do designer de fim de semana, os “orkuteiros” e todo mundo que não entende de programação, mas quer ter uma presença na web acaba tendo que usar scripts prontos como o “formmail” e serviços de terceiros.

Três desses serviços que já usei ou uso e recomendo são:

FormFacilFormFacil
Permite construir e publicar de forma rápida e dinâmica, pequenos formulários de contato em seu site.

LinkWSLinkWS
A LinkWS dispõe de produtos para você incrementar, gerenciar e divulgar seu site, além de diversos utilitários como formmails.

FormLogixFormLogix
Serviço que permite criar e hospedar formulário de forma muito fácil e prática. Tem um excelente editor de formulários e gera relatórios dos dados enviados.

Cada um destes serviços tem características distintas, vantagens e desvantagens que por vezes me fizeram usar dois serviços diferentes no mesmo site, o que pode ser bastante confuso. Acredite!

Ultimamente tenho dado preferência para os formulários do Google! Isso mesmo! Para quem não sabe o “big G da web” tem um serviço de criação de formulários que está integrado ao Google Docs.

A vantagem está no fato de os dados preenchidos no formulário serem enviados para uma planinha do Docs, onde podemos gerar estatísticas, relatórios avançados, fazer cálculos com determinados campos, importar, exportar e tudo mais que é possível com uma planilha e um bom conhecimento de Excel e similares. Isso é ótimo para criar avaliações para estudantes, enquetes e pesquisas de mercado.

A desvantagem está no layout dos formulários que é extremamente pobre e permite muito pouca ou nenhuma personalização. A página de confirmação de envio e o fato de não enviar e-mails avisando que alguém preencheu o formulário são outras falhas que termos que aprender a contornar. Mas com um pouco de criatividade algumas dessas limitações podem ser amenizadas sem muito prejuízo para o design do site.

A primeira coisa que podemos fazer é melhorar o design do formulário gerado pelo Google, para isso, basta ter algum domínio de HTML e seguir as dicas abaixo:

Primeiro logue-se no Google Docs. Se você nunca usou o serviço, acesse o endereço http://docs.google.com e logue-se com seu usuário e senha do Gmail ou qualquer outro serviço do Google. Se não tem, crie lá mesmo uma conta.

Para quem é usuário do Google Apps, uma suíte de aplicações web para domínios próprios, basta se logar no Apps, entrar no “Gerenciamento do domínio” e adicionar o serviço “Docs” ou “Textos” ao domínio.

Uma vez logado, clique no botão “Novo”, selecione “Formulário” e use a ferramenta para criar um formulário simples. Não vou mostrar isso passo a passo porque é muito fácil e está tudo muito bem documentado lá mesmo, basta clicar no link “Ajuda” da página inicial do Docs.

Você também não precisa se preocupar em criar a planilha. Isso será feito automaticamente. Só não esqueça de clicar no botão “Salvar” ou seu formulário não será criado ou ficará incompleto.

Veja abaixo como fica um simples formulário de contatos que usarei como exemplo a partir de agora. O link público do formulário é informado na tarja preta no final da página de edição do mesmo. Você também pode ver o formulário publicado e já funcional clicando aqui.


Construindo o formulário. Repare o link dele no final da página.

Planilha criada automaticamente para o formulário, inclusive com data e hora.

Você já pode incluir o formulário da forma que está no seu site. Basta usar a opção “Incorporar” disponível no botão “Mais ações” que ele gera um código HTML que pode ser copiado no seu site. Mas o resultado pode não ser o mais adequado para combinar com seu layout, com aqueles campos curtinhos, letras enormes, grandes espaços vazios, etc.

A idéia é personalizar o formulário. Salve ele e exiba o formulário publicado (Link da tarja preta! Lembra?). Agora clique com o botão direito do nouse sobre a página e selecione “Exibir o código fonte” ou algo assim. Observe que você tem um HTML muito simples, que pode ser editado quase a vontade.

Só tenha cuidado com a tag “FORM” que não deve ser modificada e também com os campos como “INPUT” e “TEXTAREA” e seus atributos “NAME=” que também devem ser mantidos.

Veja como ficou meu exemplo:

Código:

Outra idéia é usar os “ID” e “CLASS” originais das tags e personalizar tudo usando CSS, assim não será necessário alterar o HTML do formulário. Um pouco de JavaScript pode ajudar na filtragem dos campos como o de e-mail e até em uma checagem de “humanidade” por exemplo.

Agora é só colar o novo código diretamente na página escolhida do seu site e seu formulário está personalizado.

Veja o resultado final, com algumas alterações, que publiquei no By Luferat. Clique aqui para acessar o formulário finalizado e compare-o com o original.


Formulário final já modificado.

Claro que o “segredo” está na tag “FORM” que é onde está o endereço do processador de formulários do Google Docs e também no nome dos campos que devem ser mantidos. O resto é só HTML…

Como podemos ver, é possível, com alguma criatividade e atenção, aproveitar os recursos que já temos disponíveis e fazer as coisas funcionarem a nosso favor.

Essa é só uma idéia! Se você tiver outras é só mandar! Estamos aqui para compartilhar!

[Update]
Coloquei o formulário usado no Siris Games, para quem quiser testar e adaptar, aqui e a página de resposta personalizada é essa.
[/Update]

19 comentários para este post

Comentário de William Domingues.
Em 24 de março de 2009 às 14:43.

Adorei seu Post!! Muito bom. Vai me ajudar muito.

Fiquei com uma dúvida.

Como você conseguiu retirar o logo do google e a mensagem “Crie seu próprio formulário”, da página de “RESPOSTA”?

Valeu mesmo..

. . .
Comentário de Wallace.
Em 25 de março de 2009 às 15:12.

Muito bom o POST, nao sabia da integracao do form com PLANILHAS para gerar estatisticas (pensei que ele funcionava como o http://www.enquetes.com.br ).
Da pra usar minimamente bem ate em INSTITUIÇÕES DE ENSINO onde serviços de web estao bloqueados…
Voce foi muito PERSPICAZ ao criar um tipo de CAPTCHA (captura de caracteres) para evitar envio de forms como SPAM (atraves de robots – programas de preenchimento automatico de formularios) no campo “quanjto é 1 +3″ , que vc deve alterar ao longo do tempo…

. . .
Comentário de Luferat.
Em 26 de março de 2009 às 11:35.

William,

Eu usei JavaScript para ocultar a resposta padrão do Google em um iframe e fiz minha própria página de respostas.

Wallace,

Nas minhas aulas de web tenho incentivado o uso do Google Docs, não só pelos forms mas por todas as possibilidades que ele nos dá de compartilhar documentos e recursos gratuitamente e sem ter que usar um monte de serviços diferentes no site.

Assim como na resposta do Google (acima) eu usei um pouco de JavaScript no (pseuso) Captcha. A versão atual é estática e fácil de burlar, mas já estou pensando em uma mais dinâmica onde o cálculo gerado é aleatório… Se tiver alguma idéia, é só compartilhar conosco :-)

. . .
Comentário de William Domingues.
Em 26 de março de 2009 às 16:36.

Olá Luferat,

Fiquei meio confuso, pois na validação do form ele busca a página direto do servidor do google. Aí como podemos manipular essa página.

Se você puder postar seu código .js aqui seria ótimo.

Se conseguir resolver esse detalhe vou poder utilizar em vários trabalhos.

vlw

. . .
Comentário de Luferat.
Em 26 de março de 2009 às 23:30.

William,

O formulário, já editado está em neste link e a página de resposta neste.

Espero ter ajudado!

. . .
Comentário de William Domingues.
Em 26 de março de 2009 às 23:39.

Vai ajudar muito.

Muito Obrigado..

. . .
Comentário de diler.
Em 4 de abril de 2009 às 14:14.

Muito útil a dica. eu uso formulários do Geosicities mas ele é muito ruim. mas já ví que pelas dicas vou ter que aprender mais de javascript. Só não entendi porque você fez um campo “2 + 3″. Pode me ajudar?

. . .
Comentário de Luferat.
Em 11 de abril de 2009 às 13:50.

diler,

Os forms são um problema mesmo e diria que a solução não está em no JavaScript e sim no PHP, ASP, JSP, Perl ou outra linguagem à nível de servidor, já que é ele, o servidor quem processa os dados enviados por um formulário.

Esse “2+3″ é uma espécie de “captcha“, algo para evitar que “não humanos” fiquem preenchedo o formulário. Como é um cálculo extremanente complexo para ser feito por uma máquina :-D , é necessário que uma pessoa envie o formulário.

Na verdade esse “pseudo” captcha que fiz não tem muita funcionalidade, pois é facilmente burlado, mas ajuda pra caramba contra os “spammers”.

. . .
Comentário de Geraldo Rosa.
Em 1 de julho de 2009 às 13:08.

Estou utilizando os formulário do google , mas eles não reconhecem os textos em português no cabeçalho do formulário.
As palavras saem truncadas…
Tem alguma dica para corrigir isso?

Abraços

Geraldo

. . .
Comentário de Luferat.
Em 1 de julho de 2009 às 13:19.

Geraldo, tente alterar o “Content-Type” da página em que você está publicando o formulário para UTF-8. É só incluir ou editar as tags meta. Deve ter algo assim:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

. . .
Comentário de Luferat.
Em 16 de setembro de 2009 às 13:24.

O Google fez algumas modificações no sistema de formulários esses dias, principalmente nos nomes dos campos então, teste seu formulário modificado, pois há chanses de não estar funcionando.

Basta seguir os procedimentos do post novamente que ele volda a funcionar…

. . .
Comentário de bruno.
Em 1 de janeiro de 2010 às 00:11.

ae pessoal eu n axei esse incorporar no mais opçoes so axei exoortar mais n axei essa opção me ajuda ae pfff !

. . .
Comentário de Luferat.
Em 1 de janeiro de 2010 às 12:25.

ae pessoal eu n axei esse incorporar no mais opçoes so axei exoortar mais n axei essa opção me ajuda ae pfff !

— tradução online — powered by MiGuXeiToR

Olá amigos! Eu não conseguí encontrar a opção “incorporar” em “Mais opções”. Só conseguí achar a opção “exportar”. Por favor, me ajude!


Editar formulário.

bruno,

Desculpa a brincadeira de “Ano Novo”, mas não conseguí resistir! :-D

Falando sério: na janela de edição do formulário, clique no botão “Mais ações”; ele esticará para baixo mostrando “incorporar” e “editar confirmação”. Clique sobre o “incorporar” e ele vai te mostrar um código que começa com “<iframe src=…”. Copie esse código e cole diretamente dentro do “<body>…</body>” da página onde este form aparecerá.

. . .
Comentário de Matheus Sena.
Em 1 de fevereiro de 2010 às 19:00.

Ae, queria que me respondesse o mais rapido possivel, eu editei o formulario e ta pronto ateh redirecionando e tudo do jeito que eu queria, mas qndo clico em enviar n envia pro docs do google la, me ajuda por favor…

Obrigado desde já!!

. . .
Comentário de Luferat.
Em 1 de fevereiro de 2010 às 19:29.

Matheus,

Verifique o código fonte do formulário do Google. O parâmetro “action=” tem que ser o mesmo do seu formulário.

Veja também os campos ocultos “input type=’hidden’”. Eles devem estar presentes no seu novo form também.

O certo é que, ao enviar o formulário ele exiba a página de confirmação do Google Docs. Sem exibir esta página, ele não envia e costuma voltar para o mesmo form.

Se você usou algum JavaScript, remova-o e teste o form novamente. Erros de JavaScript podem impedir o envio dos dados.

. . .
Comentário de Matheus Sena.
Em 1 de fevereiro de 2010 às 19:54.

Eu arrumei o action, mas nao aparece a confirmação do docs pq eu fiz o msm post que vc passo lá em cima, com a pagina obrigado.htm… Gostaria se possível desse uma olhada…
http://www.megaupload.com/?d=S9GYQI6L

Obrigado!

. . .
Comentário de Luferat.
Em 1 de fevereiro de 2010 às 23:12.

Matheus Sena, cadastre-se e poste suas duvidas técnicas no nosso fórum, assim fica mais fácil de te ajudar… Mas já te adianto uma dica: remova todos os filtros (obrigatoriedades de preenchimento) do formulário original, deixando que o JavaScript faça a filtragem.

Atualmente eu uso uma versão melhorada que tem uma pagina só em vez de duas como no tutorial. Você pode vê-la neste link.

. . .
Comentário de Matheus Sena.
Em 7 de fevereiro de 2010 às 00:20.

Ae, gostaria de saber em que assunto eu vou e em que topico posso pedir para verificarem o meu formulário, preciso de sua ajuda…

Obrigado!!

. . .
Comentário de Luferat.
Em 7 de fevereiro de 2010 às 09:31.

Amigos,

Devido a mudança nas regras dos comentários, as dúvidas técnicas sobre Google Docs, Google Sites, Forms, etc. devem ser postadas em:

Fórum CataBits > Discussões gerais > Serviços online

Agradecemos…

. . .

Escreva um comentário

Atenção comentarista!

  • Todos os comentários serão rigidamente moderados;
  • Identifique-se! Comentários de anônimos ou com e-mail falso serão removidos;
  • Comentários com links serão removidos. Somente o link do comentarista será aceito;
  • Comentários escritos em miguxês e/ou com predominância de maiúsculas serão removidos;
  • Dúvidas técnicas e solução de problemas devem ser postados preferencialmente no Fórum;
  • Por favor, prove que você é coerente, educado e bem informado: conheça o restante do site, saiba quem somos, sobre o que, para quem e como escrevemos antes de comentar futilidades;
  • Respeite as opiniões dos autores e dos outros comentaristas. Seja breve e sem ofensas;
  • Escreva comentários relevantes e que contribuam de alguma forma para o bem da humanidade;
  • Não seja um inútil social. Lembre-se que o mundo não gira ao seu redor.

 (obrigatório)

 (obrigatório)      (Personalize seu avatar)